先把解决代码贴上来:
代码语言: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());