`

EditText加入图片混编显示

 
阅读更多

转载自:http://yutinglong.iteye.com/blog/919064

 

 

 

AndroidWebView固然强大,不过很多时候还要依赖于Android组件。这些组件的常规的使用方法这里就不必说了,而在这些组件中还有很多比较有趣的使用方法。例如,使用过QQ for Android的开发人员可能会发现,在输入聊天记录时,可以直接将表情图像放到EditText组件中(如图3所示)。也许会多初学者会感觉实现这个功能比较困难,但实际上实现这个功能再简单不过了。

我们一般通过EditTextsetText方法来设置EditText中的文本,例如如下的代码EditText添加了一个字符串。EditText edittext = (EditText)findByView(R.id.edittext);
Edittext.setText(“测试数据”);

 

 

 

Java代码 复制代码 收藏代码
  1. 1.    ImageGetter imageGetter = new ImageGetter()   
  2. 2.    {   
  3. 3.   
  4. 4.        @Override  
  5. 5.        public Drawable getDrawable(String source)   
  6. 6.        {   
  7. 7.            int id = Integer.parseInt(source);   
  8. 8.            Drawable d = getResources().getDrawable(id);   
  9. 9.            d   
  10. 10.                    .setBounds(00, d.getIntrinsicWidth(), d   
  11. 11.                            .getIntrinsicHeight());   
  12. 12.            return d;   
  13. 13.        }   
  14. 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>标签。

 

Java代码 复制代码 收藏代码
  1. 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对象。先看看如下的代码:

分享到:
评论

相关推荐

    TextView EditText 插入图片 工具类 包装

    在Android中,插入图片通常有两种方式:一是通过设置ImageView来显示图片,二是通过使用SpannableString或SpannableStringBuilder来实现文本与图片的混合展示。 对于TextView,我们可以创建一个SpannableString对象...

    EditText中插入图片并解决图片OOM

    然而,有时候我们可能需要在EditText中插入图片,比如在模仿QQ空间日志编辑的功能时,用户可能希望在文字中穿插图片,提高内容的表现力。这涉及到Android图像处理和内存管理的重要问题——如何避免图片导致的内存...

    EditText显示图片,删除图片,点击图片

    要在`EditText`中显示图片,我们通常不会直接在`EditText`内插入图片,因为这并不符合其设计初衷。而是通过组合使用其他视图组件,如`ImageView`,来达到类似的效果。一种常见方法是将`EditText`与`ImageView`放在同...

    edittext输入图片和文字

    在Android开发中,EditText是用户输入文本的基本组件,但有时候我们可能需要在EditText中实现更复杂的功能,比如允许用户在输入文字的同时插入图片。这样的需求常见于社交媒体应用、笔记应用或者论坛评论等场景,...

    使用Html在EditText中任意位置插入图片并正确显示

    借助SpannableString、ImageSpan、ImageGetter和html标签实现在EditText中任意位置插入图片,并准确显示,两个java文件对应两个界面,一个编辑EditText内容,点击“图片”按钮可在任意位置插入图片,点击“显示”...

    EditText控件内右侧加图片,图片实现点击事件处理

    这样做的目的是让`ImageView`作为`EditText`的一部分,显示在`EditText`的右侧。在XML布局文件中,可以这样编写: ```xml android:layout_width="match_parent" android:layout_height="wrap_content" android:...

    Android 中EditText 添加图片(格式化文字)

    首先,我们需要明白EditText本身并不支持直接插入图片。为了实现这个功能,我们通常会结合其他控件如ImageView或者自定义View来达到目的。一种常见的方法是使用SpannableString和ImageSpan类。下面是一步步的实现...

    在EditText中插入图片

    如果要实现用户在`EditText`中插入图片的功能,就需要进行一些自定义开发。这个话题涉及到Android UI设计、自定义View以及图像处理等多个方面。下面我们将详细探讨如何在`EditText`中插入图片。 首先,我们需要创建...

    Android EditText插入QQ表情源码

    2. **自定义`EditText`组件**:由于默认的`EditText`不支持直接插入图片,所以需要自定义一个继承自`EditText`的组件,如`SmiliesEditText`。在这个自定义组件中,你需要重写`onTextChange`等事件处理方法,以便在...

    EditText中加入图片或者类似QQ表情图

    在Android开发中,EditText是用于用户输入文本的控件,但在一些社交应用或者聊天界面中,我们常常需要在EditText中插入图片或者类似QQ的表情图标,以增强用户的表达能力。这篇博客(链接:...

    android EditText中显示图片

    通过Html方式实现图片在EditText中显示。

    可以显示gif图片的Edittext

    这个"可以显示gif图片的Edittext" demo就是针对这种情况设计的,它实现了在EditText内部加载并播放GIF图像的功能。 首先,我们需要理解Android的EditText控件。EditText是Android中的一个基本输入组件,用户可以在...

    EditText输入密码 显示 不显示

    在这个例子中,`togglePasswordVisibility` 方法会根据当前`EditText`的输入类型来切换显示/隐藏状态,并更新切换按钮的图片。`setTransformationMethod` 方法用于设置字符转换器,以控制字符的显示方式。 请注意,...

    Android 根据EditText搜索框 ListView动态显示数据

    本教程将详细介绍如何根据EditText的输入内容,动态更新ListView的数据并实时显示。 首先,我们需要在布局文件中设置EditText和ListView。EditText作为搜索框,用户在此输入搜索关键词;ListView用于展示数据,我们...

    Android实现EditText图文混合插入上传功能

    前段时间做了一个Android会议管理系统,项目需求涉及到EditText的图文混排,如图:   在上图的”会议详情”中,需要支持文本和图片的混合...如果要在一个EditText中显示图片,首先得简单了解一下SpannableString和

    Android EditText 插入表情

    为了让表情能够正常显示,还需要在`EditText`的样式中设置支持Unicode字符。可以使用`android:textInputType="textMultiLine"`属性,让`EditText`允许输入多行文本,并支持特殊字符。此外,可能还需要设置字体,确保...

    Android聊天实现图文混编(包括gif显示)

    总结来说,Android聊天应用中的图文混编和GIF显示涉及到了图片加载库的使用、自定义布局设计以及用户交互的处理。通过封装相关组件,可以简化开发流程,提高代码复用性。在实际开发中,还需要考虑性能优化,如使用...

    EditText插入图片

    然而,有时候我们需要在`EditText`中插入图片,以实现类似富文本编辑的功能。本篇将详细讲解如何在`EditText`中插入图片,并针对可能出现的内存溢出(Out Of Memory,简称OOM)问题提出解决方案。 首先,要实现`...

    android下EditText的一种显示效果

    在Android开发中,`EditText`是用户输入文本的常见组件,它的显示效果直接影响到应用程序的用户体验。本篇文章将深入探讨如何在Android环境下实现一个特定的`EditText`显示效果,即"浮标标签"(Float Label)效果。...

Global site tag (gtag.js) - Google Analytics