还有就是把图片插入到EditText中去。
代码如下:
/**
*
* 把表情插入到输入框中去
*
* @param key
*
* 点击头像真实代表的值
*
* @see insertImage
*/
public void insertImage(String key)
{
// 将随机获得的图像追加到EditText控件的最后
int location = textEdit.getSelectionStart();
//获取EditText的文字
Editable edit = textEdit.getEditableText();
SpannableString spannable = getImageValue(key);
if (location < 0 || location >= edit.length())
{
edit.append(spannable);
}
else
{
//光标所在位置插入文字
edit.insert(location, spannable);
}
layout_face.setVisibility(View.GONE);
textEdit.clearFocus();
}
getImageValue方法和上面插入到TextView中去的方法差不多,如下:
/**
*
* 把表情插入到输入框中去
*
* @param key
*
* 点击头像真实代表的值
*
* @see getImageValue
*/
public SpannableString getImageValue(String key)
{
try
{
String imageId = BootApp.getImageMap().get(key);
// 根据随机产生的1至9的整数从R.drawable类中获得相应资源ID(静态变量)的Field对象
Field field = R.drawable.class.getDeclaredField(imageId);
// 获得资源ID的值,也就是静态变量的值
int resourceId = Integer.parseInt(field.get(null).toString());
// 根据资源ID获得资源图像的Bitmap对象
Bitmap bitmap = BitmapFactory.decodeResource(Global.getContext().getResources(), resourceId);
// 根据Bitmap对象创建ImageSpan对象
ImageSpan imageSpan = new ImageSpan(Global.getContext(), bitmap);
// 创建一个SpannableString对象,以便插入用ImageSpan对象封装的图像
SpannableString spannableString = new SpannableString(key);
// 用ImageSpan对象替换face
spannableString.setSpan(imageSpan, 0, key.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
return spannableString;
}
catch (Exception e)
{
e.printStackTrace();
Log.e("onClick_RandomFace", "Insert into image is error......");
}
return null;
}