Android(安卓)edittext中添加图片并且监听图片的点击事件
16lz
2021-01-24
在EditText中添加图片的主要代码
//创建ImageSpan Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);// 要显示的图片 String content = "gamedirty"; ImageSpan imageSpan = new ImageSpan(this, b); SpannableString spannableString = new SpannableString(content);
//使用ImageSpan替换文字
spannableString.setSpan(imageSpan, 0, content.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 在EditText中添加 EditText.append(spannableString);
设置图片点击事件的主要代码 分两种情况 第一种是该EditText已经获得了焦点 使用 et.setOnClickListener()监听
第二种是该EditText没有焦点 则在 et.setOnFocusChangedListener()中监听
监听的内容都是一致的 Spanned s = et.getText();//得到Spanned对象
ImageSpan[] imagespans = s.getSpans(0, s.length(), ImageSpan.class); //得到该EditText中多有的ImageSpan对象
int selectStart = et.getSelectionStart(); //获得当前EditText中的光标位置
//遍历所有的 ImageSpan 根据光标位置判断点击的是哪一个ImageSpan for (ImageSpan span : imagespans) {
int start = s.getSpanStart(span); int end = s.getSpanEnd(span); Log.i("info", "start:" + start + ",end:" + end); if (selectStart >= start && selectStart <= end) { Toast.makeText(MainActivity.this, "点击了图片", Toast.LENGTH_LONG).show(); } }
//创建ImageSpan Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);// 要显示的图片 String content = "gamedirty"; ImageSpan imageSpan = new ImageSpan(this, b); SpannableString spannableString = new SpannableString(content);
//使用ImageSpan替换文字
spannableString.setSpan(imageSpan, 0, content.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 在EditText中添加 EditText.append(spannableString);
设置图片点击事件的主要代码 分两种情况 第一种是该EditText已经获得了焦点 使用 et.setOnClickListener()监听
第二种是该EditText没有焦点 则在 et.setOnFocusChangedListener()中监听
监听的内容都是一致的 Spanned s = et.getText();//得到Spanned对象
ImageSpan[] imagespans = s.getSpans(0, s.length(), ImageSpan.class); //得到该EditText中多有的ImageSpan对象
int selectStart = et.getSelectionStart(); //获得当前EditText中的光标位置
//遍历所有的 ImageSpan 根据光标位置判断点击的是哪一个ImageSpan for (ImageSpan span : imagespans) {
int start = s.getSpanStart(span); int end = s.getSpanEnd(span); Log.i("info", "start:" + start + ",end:" + end); if (selectStart >= start && selectStart <= end) { Toast.makeText(MainActivity.this, "点击了图片", Toast.LENGTH_LONG).show(); } }
更多相关文章
- Android实现zip文件压缩及解压缩的方法
- Android三种基本的加载网络图片方式
- android listview使用glide异步加载图片错位,闪烁问题
- android的TextView使用Html(图片显示)格式
- android vm heap 虚拟机堆大小 每个应用的堆大小
- Android(安卓)EditText控制密码的显示和隐藏
- Android实现在屏幕上移动图片的方法
- android ButterKnife 解决重复findViewById
- 修改ExpandableListView前面展开小图标