`

在EditText中添加图片

 
阅读更多

在一个editText中添加图片或超链接,其实就是通过一些类(draable,spannable 等)使一些特定的文本([smile])引用了其它的资源。

这里是第一种方式,在文本框中添加一个图片:

       //获取一张图片
        Drawable drawable = getResources().getDrawable(R.drawable.icon_smile);  
        //返回照片的实际大小
        drawable.setBounds(0 ,  0 , drawable.getIntrinsicHeight(), drawable.getIntrinsicHeight());  
        
        //需要处理(图片要替代)的文本。例[smile]是需要被替代的文本   
        SpannableString spannable = new  SpannableString(editText.getText().toString()+ "[smile]" ); 
        
        //要让图片替代指定的文字就要用ImageSpan   
        ImageSpan span = new  ImageSpan(drawable, ImageSpan.ALIGN_BASELINE);  
        //开始替换,注意第2和第3个参数表示从哪里开始替换到哪里替换结束(start和end)   
        //最后一个参数类似数学中的集合,[5,12)表示从5到12,包括5但不包括12   
        spannable.setSpan(span, editText.getText().length(),editText.getText().length()+"[smile]" .length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);    
        editText.setText(spannable); 

 第二种方式,使用Html类:

//首先应该有一个
ImageGetter

类,它的
getDrawable

方法负责从html的img标签中获取图片的id,然后返回该图片代替这个html标记
ImageGetter imageGetter = new ImageGetter() {  
	  	   @Override
	  	   public Drawable getDrawable(String source) {
	  	       int id = Integer.parseInt(source);
	  	      //根据id从资源文件中获取图片对象
	  	       Drawable d = getResources().getDrawable(id);
	  	       d.setBounds(0, 0, d.getIntrinsicWidth(),d.getIntrinsicHeight());
	  	        return d;
	  	       }
	  	   };  
        editText.setText(Html.fromHtml("
editText.getText().toString() + 

<img src='"+R.drawable.icon_smile+"'/>", imageGetter, null));

 

分享到:
评论

相关推荐

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

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

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

    在一些应用场景,比如聊天应用或者社交应用中,我们可能需要在EditText中添加图片,模仿类似微信的功能,让用户能够发送表情或其他图像,以增强文字表达的丰富性。本文将详细介绍如何在Android的EditText中实现图片...

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

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

    在EditText中插入图片

    在这个自定义类中,我们可以重写或扩展`EditText`的一些方法,以便添加新的功能,如插入图片。为了实现这一目标,我们可能需要以下几个步骤: 1. **绘制图片**:在自定义`EditText`的`onDraw()`方法中,我们需要...

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

    总结,要在`EditText`控件内右侧添加图片并实现点击事件处理,主要步骤包括:在XML布局文件中创建`EditText`和`ImageView`,设置`ImageView`的点击事件监听器,在监听器的回调中执行相应的操作,例如清除`EditText`...

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

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

    TextView EditText 插入图片 工具类 包装

    总的来说,Android开发中在TextView和EditText中插入图片是一项常见的需求,通过封装好的工具类可以使得这一过程变得简单易行。合理利用这些工具,能够帮助开发者更专注于应用的核心功能,提高开发效率。

    android EditText Hinit设置图片

    有时候,我们希望在`EditText`中不仅提供文字输入功能,还希望在编辑框的左侧或右侧添加图片,以增强界面的可读性和用户体验。标题"android EditText Hinit设置图片"正是指如何在初始化`EditText`时添加图片。`Hinit...

    EditText添加图片

    然而,有时我们可能需要在`EditText`中添加图片,比如创建一个带表情输入的聊天应用或者带有图标辅助的表单。这篇教程将指导你如何自定义`EditText`来实现这个功能,参考的是CSDN上的一篇文章(链接已给出)。 首先...

    EditText控件内右侧加图片,图片有点击事件

    在XML布局中,我们可以利用`app:drawableRightCompat`属性来添加右侧的图片。假设我们有一个名为`ic_add_icon.png`的图片资源,可以这样写: ```xml android:id="@+id/edit_text" android:layout_width="match_...

    可以显示gif图片的Edittext

    在Android开发中,有时为了提供更丰富的用户体验,我们可能需要在EditText控件中展示动态的GIF图片,例如,将GIF图片作为密码输入框的占位符。这个"可以显示gif图片的Edittext" demo就是针对这种情况设计的,它实现...

    在EditText中插入表情图片 (CharacterStyle&SpannableString)

    在Android开发中,EditText是用于用户输入文本的控件,而有时我们可能希望在EditText中不仅输入文字,还能插入各种表情图片,以增加交互性和趣味性。本篇将深入探讨如何实现在EditText中插入表情图片,主要涉及`...

    Android EditText 插入表情

    每个表情图片对应一个特定的Unicode字符,当用户点击表情图片时,会触发一个回调,将选中的表情字符添加到`EditText`中。可以使用`OnClickListener`或者`OnItemClickListener`来实现这个功能。 在回调函数中,我们...

    EditText添加图片SmiliesEditText.zip

    本教程将详细介绍如何在`EditText`中实现图片和表情的插入功能,这在现代移动应用设计中是常见的需求。 1. **Smilies集成** - 表情库选择:通常,开发者会使用预定义的emoji库或者自定义的Smilies图标集。例如,...

    《实现RichEdit(一)---如何在EditText中插入图片表情》----源码

    博客《实现RichEdit(一)---如何在EditText中插入图片表情》对应的源码,博文地址:http://blog.csdn.net/harvic880925/article/details/18146597

    android如何在textview或edittext上添加表情

    在Android开发中,为TextView或EditText添加表情功能是一项常见的需求,尤其在社交应用或者聊天界面设计时。这个过程涉及到字符编码、自定义视图以及图片加载等多个知识点。下面将详细阐述实现这一功能的关键步骤和...

    Android EditText插入QQ表情源码

    在Android开发中,`EditText` 是一个非常常见的控件,用于接收用户输入文本。而将QQ表情集成到`EditText`中,可以为用户提供更加丰富的交流体验,尤其在社交应用或者聊天应用中。本文将深入探讨如何实现这个功能,并...

    自定义edittext加入左边点击事件

    例如,标题中提到的“自定义edittext加入左边点击事件”,这通常是为了增加更多的交互性或实现特定功能,比如添加清除按钮、展开收起输入框等。在Android SDK中,Edittext左侧的图标(drawableLeft)默认并不支持...

    安卓EditText输入框相关-一个基于Android原生的EditText的富文本组件支持文字输入可以插入图片.rar

    5. 在EditText的文本中定位插入位置,并添加ImageSpan对象来显示图片。 6. 更新EditText的显示,确保图片正确显示并适应文本的缩放和滚动。 此外,为了提供良好的用户体验,还需要考虑以下几点: - 图片大小的限制...

    Android-Android-Prefix-Input为EditText添加prefix前缀模式

    总的来说,`Android-Prefix-Input`是一个实用的工具,它简化了在`EditText`中添加前缀的过程,提高了Android应用的用户体验。通过学习和使用这个库,开发者可以更高效地构建具有专业感和用户友好性的界面。

Global site tag (gtag.js) - Google Analytics