您的位置:首页 > 移动开发 > Android开发

Android edittext中添加图片并且监听图片的点击事件

2014-09-26 11:34 531 查看
在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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: