TextView——setCompoundDrawables用法
Drawable drawable = mContext.getResources().getDrawable(R.drawable.duringtime);
drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());//必须设置图片大小,否则不显示
holder.time.setCompoundDrawables(drawable, null, null, null);
第一个按钮没有启用显示的状态,。。。按钮上不显示右箭头括号。
解决方法:setCompoundDrawables(Drawable left, Drawable top, Drawable right, Drawable bottom)
api原文为:
Sets the Drawables (if any) to appear to the left of, above, to the right of, and below the text. Use null if you do not want a Drawable there. The Drawables must already have had setBounds(Rect) called.
意思大概就是:可以在上、下、左、右设置图标,如果不想在某个地方显示,则设置为null。但是Drawable必须已经setBounds(Rect)。意思是你要添加的资源必须已经设置过初始位置、宽和高等信息。 后来才发现问题,是对drawable的边界进行处理时把参数传反了,修改后的可起作用代码如下:
1 Drawable dra= getResources().getDrawable(R.drawable.button_yjt); 2 dra.setBounds( 0, 0, dra.getMinimumWidth(),dra.getMinimumHeight()); 3 btn1.setCompoundDrawables(null, null, dra, null); 记得setBounds(left, top, right, bottom);方法中各个参数的顺序,传入的参数一定要按顺序。