图文混编效果之TextView、EditText中显示图片

需求:客户端需要模仿服务器H5发布图文混编形式的新闻、通知。

第一种使用Html类ImageGetter接口

 String html="
"
+""+"
"
; mEditText.append(Html.fromHtml(html, new Html.ImageGetter() { @Override public Drawable getDrawable(String source) { // 获取本地图片 Drawable drawable = Drawable.createFromPath(source); // 必须设为图片的边际,不然TextView显示不出图片 // drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); drawable.setBounds(0, 0, 100, 100); // 将其返回 return drawable; } },null));

这里是伪造Html内容 ImageGetter 接口会拿到标签src中的值 然后把他加载成drawable 就可以了

第二种 使用SpannableString

string=""+string替换图片的参数+"";
SpannableString spannableString=new SpannableString(string);
int position=string.indexOf("");
if(position==0){
    String str= string.substring(position+5,string.length()-6);
    Bitmap bitmap= BitmapFactory.decodeFile(str);
    spannableString.setSpan(new ImageSpan(bitmap),0,string.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
mEditText.append(spannableString);

SpannableString 可以给字符串设置各种样式 这里就用来替换字符串为图片了

你可能感兴趣的:(Android)