Android控件之TextView支持图片

这种形式,其实还是html格式。

如要显示:图片一<img src="img1"/>

说明:图片资源放在drawable目录下

实现代码:

==================================================


 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  show = (TextView) findViewById(R.id.show);

  String html = "图片一<img src='img1'/>";

  CharSequence charSequence = Html.fromHtml(html, new ImageGetter() {

   @Override
   public Drawable getDrawable(String source) {
    // 获取系统资源的信息
    Drawable drawable = getResources().getDrawable(
      getResourceId(source));

    // 设置图片的位置
    drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
      drawable.getIntrinsicHeight());

    return drawable;
   }

  }, null);// 支持html

  show.setText(charSequence);
 }

//通过反射机制获取资源id,(通过图片的名称获取)

 public static int getResourceId(String name) {
  try {
   // 根据资源id的变量名称获得Field的对象,使用反射机制来实现
   Field field = R.drawable.class.getField(name);
   // 取得并返回资源的id的字段(静态变量)的值,使用反射机制
   return Integer.parseInt(field.get(null).toString());
  } catch (Exception e) {
   // 处理异常
  }
  return 0;
 }

=====================================

效果图:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值