Android TextView中有圖片有文字混合排列
1.使用html.fromHtml
2.設置ImageGetter
3.使用< img src>標簽
上點步驟代碼給大家一個思路概念。
設置文字
textView.setText(Html .fromHtml(getMyString(), getImageGetterInstance(), null));
獲取文字
private String getMyString() {
return "你的左護法" + "<img src='" + R.drawable.left
+ "'/>" + "+云韻,你的右護法" + "<img src='" + R.drawable.right
+ "'/>" + "+杜美莎女王" ;
}
text圖文混排
public ImageGetter getImageGetterInstance() {
ImageGetter imgGetter = new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
int fontH = (int) (getResources().getDimension(
R.dimen.textSizeMedium) * 1.5);
int id = Integer.parseInt(source);
Drawable d = getResources().getDrawable(id);
int height = fontH;
int width = (int) ((float) d.getIntrinsicWidth() / (float) d
.getIntrinsicHeight()) * fontH;
if (width == 0) {
width = d.getIntrinsicWidth();
}
d.setBounds(0, 0, width, height);
return d;
}
};
return imgGetter;
}
下圖按照上面思路做的,給大家個參考。從網路上找的,侵刪
bieren.png
相信大家有大概的概念和思路了,那么我要召喚華麗的分割線
以下是以前我以前做智能家居時候的部分代碼和效果
code截圖
smartcode.png
效果圖
smartimg.jpg
把我的代碼貼出來,如果有需要可以直接復制
private void init() {
helperTV.setText(Html.fromHtml(descString(), getImage(), null));
}
/** 圖片 **/
private ImageGetter getImage() {
ImageGetter imageGetter=new Html.ImageGetter() {
@Override
public Drawable getDrawable(String source) {
int id=Integer.parseInt(source);
Drawable drawable=getResources().getDrawable(id);
drawable.setBounds(0, 0, (int) (drawable.getIntrinsicHeight()*2.5), (int) (drawable.getIntrinsicWidth()*0.5));
return drawable;
}
};
return imageGetter;
}
/** 文字 **/
private String descString() {
return "答:有兩種方法:1、您可以進入APP的智能網關操作界面,點擊“" + "<img src='" + R.drawable.more_helper_bun
+ "'/>" + "”按鈕,看到上面的數字倒計時開始即可入網;2、在網關上按下“" + "<img src='" + R.drawable.more_helper_bun
+ "'/>" + "”按鈕,看到按鈕上的LED閃爍即可,3分鐘內,上電的設備會自動加入網絡。";
}
text多顏色處理
跟圖文混排一樣的思路用Html.fromHtml的方式
textViews[i].setText(Html.fromHtml("<font color=\"#FF9D08\">" + stringsColor[i] + "</font>" + stringsWhite[i] + ""));
還是上個花枝招展的圖吧
hua.png
當然,還可以用 SpannableStringBuilder 來處理
SpannableStringBuilder 可以將原來的String以不同的樣式顯示出來,比如在原來String上加下劃線、加背景色、改變字體顏色、用圖片把指定的文字給替換掉
稍后寫一篇專門針對SpannableStringBuilder 的文章。
相信這些完全可以解決在開發中遇到的絕大多數的text圖文混排和text多顏色之類之類的需求了。