setCompoundDrawables使用

昨天在处理button上的遇到的问题,

第一个按钮没有启用显示的状态,。。。按钮上不显示右箭头括号。

解决方法: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);方法中各个参数的顺序,传入的参数一定要按顺序。

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hello_zhou/article/details/50456959
文章标签: setCompoundDrawables
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭