本项目图片文字格式为:[shengli]-
1.首先,需要一个字符串组
res values 目录下;
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="emoj">
<item id="shengli">shengli</item>
<item id="aoman">aoman</item>
<item id="bizui">bizui</item>
<item id="caidao">caidao</item>
<item id="fendou">fendou</item>
</string-array>
</resources>
2.把需要的图片拷贝到drawable目录下
3.写好显示表情的GridView和GridView需要用到的Layout
以后上传
4.代码:
HashMap<String, Integer> mFaceHash;
String[] faceStr;
mFaceHash = new HashMap<String, Integer>();
faceStr = getApplicationContext().getResources().getStringArray(
R.array.emoj);
for (int i = 0; i < faceStr.length; i++) {
int resID = getApplicationContext().getResources().getIdentifier(
faceStr[i], "drawable", "com.org.sns.ui");
mFaceHash.put(faceStr[i], resID);
}
显示表情部分:
Drawable drawable = SendWeiboActivity.this.getResources().getDrawable(
Integer.parseInt(content));
if (drawable != null) {
drawable.setBounds(0, 0, drawable.getIntrinsicWidth()*3,
drawable.getIntrinsicHeight()*3);
ImageSpan span = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);
ss.setSpan(span, 0, content.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
return ss;
表情部分:
GridView gv = (GridView) findViewById(R.id.emoj);
if (gv.getVisibility() == View.GONE) {
gv.setVisibility(View.VISIBLE);
ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();
for (String face_image : faceStr) {
HashMap<String, Object> map = new HashMap<String, Object>();
int resID = getApplicationContext().getResources()
.getIdentifier(face_image, "drawable",
"com.org.sns.ui");
map.put("ItemImage", resID);// 添加图像资源的ID
Log.e("aril", ":图片ID" + resID);
lstImageItem.add(map);
}
SimpleAdapter mSimpleAdapter = new SimpleAdapter(
SendWeiboActivity.this, lstImageItem,
R.layout.send_weibo_emoj, new String[] { "ItemImage" },
new int[] { R.id.emotion });
gv.setAdapter(mSimpleAdapter);
gv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
// sendcontent.setText(sendcontent.getText().toString());
int cursor = sendcontent.getSelectionStart();
// sendcontent.getText().insert(cursor,
// txtToImg(mFaceHash.get(arg2) + ""));
sendcontent.getText().insert(cursor,
txtToImg("" + mFaceHash.get(faceStr[arg2])));
Log.e("aril", arg2 + "--2");
Log.e("aril", arg3 + "--3");
}
});
} else {
gv.setVisibility(View.GONE);
}
未尽之处,日后补充
6.图片大小问题:太小这么显示就好了
drawable.setBounds(0, 0, drawable.getIntrinsicWidth()*3,
drawable.getIntrinsicHeight()*3);