Android TextView中有圖片有文字混合排列
阿新 • • 發佈:2018-12-20
Android TextView中有圖片有文字混合排列
1.使用html.fromHtml
2.新建ImageGetter
3.使用<img src>標籤
demo:
1.設定文字
((TextView) findViewById(R.id.tv_gradlist_calorie_desc)).setText(Html
.fromHtml(descString(), getImageGetterInstance(), null));
2.獲取文字
/** * 字串 * * @return */ private String descString() { return "您消耗的總熱量約等於4杯" + "<img src='" + R.drawable.ic_gradlist_coke + "'/>" + "+5只" + "<img src='" + R.drawable.ic_gradlist_ice + "'/>" + "+10個" + "<img src='" + R.drawable.ic_gradlist_hamburger + "'/>" + ""; }
3.imagegetter
文章出處:https://blog.csdn.net/pangzaifei/article/details/70213731
/** * ImageGetter用於text圖文混排 * * @return */ 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; }
效果
個人專案txtreader:已經發布google play,http://blog.csdn.net/pangzaifei/article/details/52756777
有需要的可以聯絡