转载自:http://yutinglong.iteye.com/blog/919064
Android的WebView固然强大,不过很多时候还要依赖于Android组件。这些组件的常规的使用方法这里就不必说了,而在这些组件中还有很多比较有趣的使用方法。例如,使用过QQ for Android的开发人员可能会发现,在输入聊天记录时,可以直接将表情图像放到EditText组件中(如图3所示)。也许会多初学者会感觉实现这个功能比较困难,但实际上实现这个功能再简单不过了。
我们一般通过EditText的setText方法来设置EditText中的文本,例如如下的代码向EditText添加了一个字符串。EditText edittext = (EditText)findByView(R.id.edittext);
Edittext.setText(“测试数据”);
- 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. };
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));
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所示)。
转载自:http://yutinglong.iteye.com/blog/919064
我们只需要对上面的代码稍微做一下手脚,就可以实现将图像插入到EditText中的目的。如果读者看过《Android/OPhone开发完全讲义》,会发现书中在很多情况下使用了文本标记(类似于HTML语言的标签,但只包含了十分有限的HTML语言的功能)。在这些标记中有一个<img>标记。通过这个标记,可以很容易地实现将图像插入到EditText的功能。不过使用<img>标签要比使用其他的标签多一个步骤,这就是要实现一个ImageGetter接口,通过这个接口,可以获得一个Drawable对象。先看看如下的代码:
分享到:
相关推荐
在Android中,插入图片通常有两种方式:一是通过设置ImageView来显示图片,二是通过使用SpannableString或SpannableStringBuilder来实现文本与图片的混合展示。 对于TextView,我们可以创建一个SpannableString对象...
然而,有时候我们可能需要在EditText中插入图片,比如在模仿QQ空间日志编辑的功能时,用户可能希望在文字中穿插图片,提高内容的表现力。这涉及到Android图像处理和内存管理的重要问题——如何避免图片导致的内存...
要在`EditText`中显示图片,我们通常不会直接在`EditText`内插入图片,因为这并不符合其设计初衷。而是通过组合使用其他视图组件,如`ImageView`,来达到类似的效果。一种常见方法是将`EditText`与`ImageView`放在同...
在Android开发中,EditText是用户输入文本的基本组件,但有时候我们可能需要在EditText中实现更复杂的功能,比如允许用户在输入文字的同时插入图片。这样的需求常见于社交媒体应用、笔记应用或者论坛评论等场景,...
借助SpannableString、ImageSpan、ImageGetter和html标签实现在EditText中任意位置插入图片,并准确显示,两个java文件对应两个界面,一个编辑EditText内容,点击“图片”按钮可在任意位置插入图片,点击“显示”...
这样做的目的是让`ImageView`作为`EditText`的一部分,显示在`EditText`的右侧。在XML布局文件中,可以这样编写: ```xml android:layout_width="match_parent" android:layout_height="wrap_content" android:...
首先,我们需要明白EditText本身并不支持直接插入图片。为了实现这个功能,我们通常会结合其他控件如ImageView或者自定义View来达到目的。一种常见的方法是使用SpannableString和ImageSpan类。下面是一步步的实现...
如果要实现用户在`EditText`中插入图片的功能,就需要进行一些自定义开发。这个话题涉及到Android UI设计、自定义View以及图像处理等多个方面。下面我们将详细探讨如何在`EditText`中插入图片。 首先,我们需要创建...
2. **自定义`EditText`组件**:由于默认的`EditText`不支持直接插入图片,所以需要自定义一个继承自`EditText`的组件,如`SmiliesEditText`。在这个自定义组件中,你需要重写`onTextChange`等事件处理方法,以便在...
在Android开发中,EditText是用于用户输入文本的控件,但在一些社交应用或者聊天界面中,我们常常需要在EditText中插入图片或者类似QQ的表情图标,以增强用户的表达能力。这篇博客(链接:...
通过Html方式实现图片在EditText中显示。
这个"可以显示gif图片的Edittext" demo就是针对这种情况设计的,它实现了在EditText内部加载并播放GIF图像的功能。 首先,我们需要理解Android的EditText控件。EditText是Android中的一个基本输入组件,用户可以在...
在这个例子中,`togglePasswordVisibility` 方法会根据当前`EditText`的输入类型来切换显示/隐藏状态,并更新切换按钮的图片。`setTransformationMethod` 方法用于设置字符转换器,以控制字符的显示方式。 请注意,...
本教程将详细介绍如何根据EditText的输入内容,动态更新ListView的数据并实时显示。 首先,我们需要在布局文件中设置EditText和ListView。EditText作为搜索框,用户在此输入搜索关键词;ListView用于展示数据,我们...
前段时间做了一个Android会议管理系统,项目需求涉及到EditText的图文混排,如图: 在上图的”会议详情”中,需要支持文本和图片的混合...如果要在一个EditText中显示图片,首先得简单了解一下SpannableString和
为了让表情能够正常显示,还需要在`EditText`的样式中设置支持Unicode字符。可以使用`android:textInputType="textMultiLine"`属性,让`EditText`允许输入多行文本,并支持特殊字符。此外,可能还需要设置字体,确保...
总结来说,Android聊天应用中的图文混编和GIF显示涉及到了图片加载库的使用、自定义布局设计以及用户交互的处理。通过封装相关组件,可以简化开发流程,提高代码复用性。在实际开发中,还需要考虑性能优化,如使用...
然而,有时候我们需要在`EditText`中插入图片,以实现类似富文本编辑的功能。本篇将详细讲解如何在`EditText`中插入图片,并针对可能出现的内存溢出(Out Of Memory,简称OOM)问题提出解决方案。 首先,要实现`...
在Android开发中,`EditText`是用户输入文本的常见组件,它的显示效果直接影响到应用程序的用户体验。本篇文章将深入探讨如何在Android环境下实现一个特定的`EditText`显示效果,即"浮标标签"(Float Label)效果。...