Android TextView中有圖片有文字混合排列和多顏色text字體組合

Android TextView中有圖片有文字混合排列

1.使用html.fromHtml
2.設(shè)置ImageGetter
3.使用< img src>標(biāo)簽

上點(diǎn)步驟代碼給大家一個思路概念。

設(shè)置文字

textView.setText(Html .fromHtml(getMyString(), getImageGetterInstance(), null));

獲取文字

private String getMyString() {
     return "你的左護(hù)法" + "<img src='" + R.drawable.left
       + "'/>" + "+云韻,你的右護(hù)法" + "<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;
  }

下圖按照上面思路做的,給大家個參考。從網(wǎng)路上找的,侵刪

bieren.png

相信大家有大概的概念和思路了,那么我要召喚華麗的分割線


以下是以前我以前做智能家居時候的部分代碼和效果

code截圖
smartcode.png
效果圖
smartimg.jpg
把我的代碼貼出來,如果有需要可以直接復(fù)制
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、您可以進(jìn)入APP的智能網(wǎng)關(guān)操作界面,點(diǎn)擊“" + "<img src='" + R.drawable.more_helper_bun
                   + "'/>" + "”按鈕,看到上面的數(shù)字倒計(jì)時開始即可入網(wǎng);2、在網(wǎng)關(guān)上按下“" + "<img src='" + R.drawable.more_helper_bun
                   + "'/>" + "”按鈕,看到按鈕上的LED閃爍即可,3分鐘內(nèi),上電的設(shè)備會自動加入網(wǎng)絡(luò)。";
    }
text多顏色處理
跟圖文混排一樣的思路用Html.fromHtml的方式
textViews[i].setText(Html.fromHtml("<font color=\"#FF9D08\">" + stringsColor[i] + "</font>" + stringsWhite[i] + ""));
還是上個花枝招展的圖吧
hua.png
當(dāng)然,還可以用 SpannableStringBuilder 來處理

SpannableStringBuilder 可以將原來的String以不同的樣式顯示出來,比如在原來String上加下劃線、加背景色、改變字體顏色、用圖片把指定的文字給替換掉
稍后寫一篇專門針對SpannableStringBuilder 的文章。
相信這些完全可以解決在開發(fā)中遇到的絕大多數(shù)的text圖文混排和text多顏色之類之類的需求了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容