EditText是除了TextView控件之外的属性,还可以实现输入文本内容。下面我们就举几个实例来练习一下这种控件的使用方法。
1. 案例一:像QQ一样输入表情图像
主要代码:
/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initComponent(); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int randomId = 1 + new Random().nextInt(5); //取得随机数randomId 范围在[1,6)之间 try { //利用反射机制:根据随机产生的1至5的整数从R.drawable类中获得相应资源ID(静态变量)的Field对象 Field field = R.drawable.class.getDeclaredField("face" + randomId); //取得图片的名称+1个随机数 //获得资源ID的值,也就是静态变量的值 int resourceId = Integer.parseInt(field.get(null).toString()); /* * 在android重要要显示图片信息,必须使用Bitmap位图的对象来装载。 * 查看Android 的BitmapFactory的API文档:Public Methods,这些方法描述了如何讲一些字符串,字节数组转化为字节对象 */ Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resourceId); // 要让图片替代指定的文字就要用ImageSpan ImageSpan imageSpan = new ImageSpan(EditTextDemoActivity.this, bitmap); // 创建一个SpannableString对象,以便插入用ImageSpan对象封装的图像 SpannableString spannableString = new SpannableString("face"); // 用ImageSpan对象替换face spannableString.setSpan(imag