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

1.使用html.fromHtml

2.新建ImageGetter

3.使用标签

demo:

1.设置文字

((TextView) findViewById(R.id.tv_gradlist_calorie_desc)).setText(Html

.fromHtml(descString(), getImageGetterInstance(), null));2.获取文字

/**

* 字符串

*

* @return

*/

private String descString() {

return "您消耗的总热量约等于4杯" + "p><p%20align=%22center%22>%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22" + "+5只" + "p><p%20align=%22center%22>%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22" + "+10个" + "p><p>+%20R.drawable.ic_gradlist_hamburger%20+%20%22" + "";

}3.imagegetter

/**

* 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;

}效果

e612c2f30e4955c5db8ebe1c6361842b.png

原文:http://blog.csdn.net/pangzaifei/article/details/38112053

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐