Android EditText加入图片混编显示

大家可以看到像QQ 微博的软件,在输入框内加入图片。那么怎么实现的呢。这里给大家提供一种方法。

标记中有一个<img>标记。通过这个标记,可以很容易地实现将图像插入到EditText的功能。不过使用<img>标签要比使用其他的标签多一个步骤,这就是要实现一个ImageGetter接口,通过这个接口,可以获得一个Drawable对象。先看看如下的代码:


private ImageGetter imageGetter = new ImageGetter(){  
         @Override  
         public Drawable getDrawable(String source)  
         {  
             int id = Integer.parseInt(source);  
             Drawable d = getResources().getDrawable(id);  
             d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());  
             return d;  
         }  
};  


上面的代码通过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中

你可能感兴趣的:(img)