本文实例讲述了android编程开发之edittext实现输入qq表情图像的方法。分享给大家供大家参考,具体如下:
实现效果如下:
将qq表情图像放到res下的drawable-hdpi文件夹下:
布局文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<edittext
android:id= "@+id/edittext"
android:layout_width= "fill_parent"
android:layout_height= "wrap_content"
android:layout_margintop= "10dp"
android:inputtype= "text" >
</edittext>
<button
android:id= "@+id/button1"
android:layout_width= "wrap_content"
android:layout_height= "wrap_content"
android:layout_alignleft= "@+id/edittext"
android:layout_alignright= "@+id/edittext"
android:layout_below= "@+id/edittext"
android:layout_margintop= "38dp"
android:text= "添加qq表情" />
|
mainactivity.java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
package com.example.edittext1;
import java.lang.reflect.field;
import java.util.random;
import android.app.activity;
import android.graphics.bitmap;
import android.graphics.bitmapfactory;
import android.os.bundle;
import android.text.spannable;
import android.text.spannablestring;
import android.text.style.imagespan;
import android.view.menu;
import android.view.view;
import android.widget.button;
import android.widget.edittext;
public class mainactivity extends activity {
//声明控件对象
private edittext edittext;
private button button;
@override
protected void oncreate(bundle savedinstancestate) {
super .oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);
edittext=(edittext) findviewbyid(r.id.edittext);
button=(button) findviewbyid(r.id.button1);
//为按钮注册点击事件
button.setonclicklistener( new view.onclicklistener() {
@override
public void onclick(view v) {
//产生随机数 随机数是从0开始,所以要加1,这样就会产生1到9的随机数
int randomid= 1 + new random().nextint( 9 );
try {
//获取表情图片文件名
field field=r.drawable. class .getdeclaredfield( "face" +randomid);
int resourceid = integer.parseint(field.get( null ).tostring());
// 在android中要显示图片信息,必须使用bitmap位图的对象来装载
bitmap bitmap = bitmapfactory.decoderesource(getresources(), resourceid);
//要让图片替代指定的文字就要用imagespan
imagespan imagespan = new imagespan(mainactivity. this , bitmap);
spannablestring spannablestring = new spannablestring( "face" ); //face就是图片的前缀名
spannablestring.setspan(imagespan, 0 , 4 ,spannable.span_exclusive_exclusive);
edittext.append(spannablestring);
} catch ( exception e) {
}
}
});
}
@override
public boolean oncreateoptionsmenu(menu menu) {
// inflate the menu; this adds items to the action bar if it is present.
getmenuinflater().inflate(r.menu.main, menu);
return true ;
}
}
|
希望本文所述对大家android程序设计有所帮助。