控件在代码里调用setBackgroundResource后,padding参数会被重置掉。在Xml文件中的padding 值就没用了。这时如果想正常显示,就需要重新设置Padding。
代码如下:
int left = lb.getPaddingLeft();
int right = lb.getPaddingRight();
int top = lb.getPaddingTop();
int bottom = lb.getPaddingBottom();
lb.setBackgroundResource(R.drawable.button_r);
lb.setPadding(left, top, right, bottom);
就是在调用setBackgroundResource之前,先取得控件的Padding值,然后再设置setBackgroundResource之后,再调用setPadding重新设置它。