Android ImageSpan不顯示
阿新 • • 發佈:2019-02-19
在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;
}