還有就是把圖片插入到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;
}