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

本文介绍了在Android TextView中实现图片与文字混合排列的方法。通过使用html.fromHtml、新建ImageGetter和使用标签来达成图文混排效果,并给出了设置文字、获取文字以及实现ImageGetter的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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;

}

效果

52e325338207d85098aed8bbda8eebb3.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值