Android的WebView固然强大,不过很多时候还要依赖于Android组件。这些组件的常规的使用方法这里就不必说了,而在这些组件中还有很多比较有趣的使用方法。例如,使用过QQ for Android的开发人员可能会发现,在输入聊天记录时,可以直接将表情图像放到EditText组件中(如图3所示)。也许会多初学者会感觉实现这个功能比较困难,但实际上实现这个功能再简单不过了。
我们一般通过EditText的setText方法来设置EditText中的文本,例如如下的代码向EditText添加了一个字符串。EditText edittext = (EditText)findByView(R.id.edittext);
Edittext.setText(“测试数据”);
我们只需要对上面的代码稍微做一下手脚,就可以实现将图像插入到EditText中的目的。如果读者看过《Android/OPhone开发完全讲义》,会发现书中在很多情况下使用了文本标记(类似于HTML语言的标签,但只包含了十分有限的HTML语言的功能)。在这些标记中有一个<img>标记。通过这个标记,可以很容易地实现将图像插入到EditText的功能。不过使用<img>标签要比使用其他的标签多一个步骤,这就是要实现一个ImageGetter接口,通过这个接口,可以获得一个Drawable对象。先看看如下的代码:
1. ImageGetter imageGetter = new ImageGetter()
2. {
3.
4. @Override
5. public Drawable getDrawable(String source)
6. {
7. int id = Integer.parseInt(source);
8. Drawable d = getResources().getDrawable(id);
9. d
10. .setBounds(0, 0, d.getIntrinsicWidth(), d
11. .getIntrinsicHeight());
12. return d;
13. }
14. };
上面的代码通过ImageGetter接口的getDrawable方法返回了一个Drawable对象,其中source参数的值就是<img>标签的src属性的值。我们需要通过如下的代码来使用<img>标签。
editText.append(Html.fromHtml("<imgsrc='"+ faces[new Random().nextInt(6)] +"'/>", imageGetter, null));
其中faces是一个int类型数组,保存了相应的drawable资源的ID值。在使用<img>标签之前需要使用Html.fromHtml方法来封装这些标签,如果使用的是<img>标签,需要使用fromHtml方法的第2个参数指定ImageGetter对象,以便通过<img>标签的src属性获得相应的Drawable对象。通过EditText.append方法插入<img>标签后,系统会自动将<img>标签转换成相应的图像显示在EditText中。下面来看看我们的成果(如图4所示)。
分享到:
相关推荐
Android TextView EditText 插入 图片 工具类 包装 ,已包装好工具类,直接调用
EditText显示图片,删除图片,点击图片
在EditText中插入图片,仿QQ空间日志编写
借助SpannableString、ImageSpan、ImageGetter和html标签实现在EditText中任意位置插入图片,并准确显示,两个java文件对应两个界面,一个编辑EditText内容,点击“图片”按钮可在任意位置插入图片,点击“显示”...
edittext输入图片和文字;图片经过压缩、缩小
EditText控件内右侧加图片,图片实现点击事件
通过Html方式实现图片在EditText中显示。
Android EditText插入QQ表情源码,测试已经通过,可下载查看。
公司让我们用gif图片代替密码框的*占位符,这是一个demo,用gif图片代替字符显示在Edittext
根据微信使用EditText 发送表情!
在自己定义EditText,从而实现在EditText中插入图片。
前段时间做了一个Android会议管理系统,项目需求涉及到EditText的图文混排,如图: 在上图的”会议详情”中,需要支持文本和图片的混合...如果要在一个EditText中显示图片,首先得简单了解一下SpannableString和
EditText插入图片,并解决图片OOM问题
本代码为:http://blog.csdn.net/u011386687/article/details/42921125 自定义EditText添加图片
1)android edit text 显示输入密码 或者 不显示输入密码
(EditText内容分不同块显示,支持校验,删除块,添加块,得到块代表的字符串集合) 预览效果: 代码中实现: 1.继承CloudEditText覆写checkInputSpan实现校验(不需校验可以省略本步) public class ...
类似微信的表情输入,点击表情按钮,弹出表情选择,选择表情后输入edittext
Android EditText 手机号码分段显示
EditText添加图片SmiliesEditText.zip EditText 添加图片
Android实现EditText的一个细节效果的源码