1. 程式人生 > >Android ImageSpan不顯示

Android ImageSpan不顯示

在TextView中插入圖片,我們一般是使用ImageSpan,但是在使用過程中,發現當TextView中一行未滿時自動換行(這種情況一般是發生在中英文混排),插入在首部的ImageSpan不顯示了,如下圖:

這裡寫圖片描述
原本在首部會有一個置頂的圖示,但是由於換行導致ImageSpan不顯示了。

這裡的解決方法是換了一種實現方式,使用Html.fromHtml的ImageGetter

/**
     * 獲取圖片標籤
     */
    private static Spanned getImageSpan(final Context context,int resId){
        Spanned hotSpan = Html.fromHtml("<img src='"
+ resId + "'/> ", new Html.ImageGetter() { @Override public Drawable getDrawable(String source) { if(!TextUtils.isEmpty(source)) { int id = Integer.parseInt(source); //根據id從資原始檔中獲取圖片物件 Drawable d = context.getResources().getDrawable(id); if
(d != null) { d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight()); } return d; } return null; } },null); /*SpannableStringBuilder hotSpan = new SpannableStringBuilder(" "); VerticalImageSpan imageSpan = new VerticalImageSpan(context, resId); hotSpan.setSpan(imageSpan, 0, 1, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE);*/
return hotSpan; }