前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >代码中修改TextView的DrawableLeft图片

代码中修改TextView的DrawableLeft图片

作者头像
张拭心 shixinzhang
发布2022-11-30 16:58:59
7460
发布2022-11-30 16:58:59
举报

先把解决代码贴上来:

代码语言:javascript
复制
Drawable weather = getResources().getDrawable(R.drawable.sunday);
        weather.setBounds(0, 0, weather.getMinimumWidth(), weather.getMinimumWidth());
        tv_choose_weather.setCompoundDrawables(weather, null, null, null);

/***********分割线*********************/

本来觉得在TextView中添加一个android:drawableLeft="@drawable/org3_ww0"属性比一个ImageView+一个TextView方便多了,结果今天需要更换TextView的DrawableLeft图片时傻眼了,遍访名医后方得解法,记录如下:

TextView有个方法叫setCompoundDrawables(left,top,right,bottom)就是用来设置、修改他旁边的图片的,我们只需要把新的Drawable传到对应的参数位置即可。

Drawable可以通过getResources().getDrawable(id)方法得到,例如:

代码语言:javascript
复制
Drawable weather = getResources().getDrawable(R.drawable.sunday);

你以为这就结束了?No

setCompoundDrawables() 的参数Drawable对象,必须先调用setBounds(int left, int top, int right, int bottom)方法,设置好这个图片要绘制的矩形区域大小。

所以就有了解决代码的第二行:

代码语言:javascript
复制
weather.setBounds(0, 0, weather.getMinimumWidth(), weather.getMinimumWidth());

对了,那个setBounds的参数怎么传呢?

其实他让你传入的是四个顶点坐标,然后编译器进行运算求出矩形的长宽。我们可以直接在left、top传入0,right、bottom传入要绘制图片的宽和高就行了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 先把解决代码贴上来:
    • 本来觉得在TextView中添加一个android:drawableLeft="@drawable/org3_ww0"属性比一个ImageView+一个TextView方便多了,结果今天需要更换TextView的DrawableLeft图片时傻眼了,遍访名医后方得解法,记录如下:
      • TextView有个方法叫setCompoundDrawables(left,top,right,bottom)就是用来设置、修改他旁边的图片的,我们只需要把新的Drawable传到对应的参数位置即可。
        • Drawable可以通过getResources().getDrawable(id)方法得到,例如:
        • 你以为这就结束了?No
          • setCompoundDrawables() 的参数Drawable对象,必须先调用setBounds(int left, int top, int right, int bottom)方法,设置好这个图片要绘制的矩形区域大小。
            • 所以就有了解决代码的第二行:
            • 对了,那个setBounds的参数怎么传呢?
              • 其实他让你传入的是四个顶点坐标,然后编译器进行运算求出矩形的长宽。我们可以直接在left、top传入0,right、bottom传入要绘制图片的宽和高就行了。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档