在学校做项目的时候有需要需要做图片紧挨着文字的Button ,但是在Button设置里面只有左右上下设置图片。
如果按钮过长,图片设置在左边,就会出现图片靠着左边离文本很远,我首先想重写Button(以前重写过RadioButton,让居上图片居中显示),后来又琢磨着别的方法。最后想到等待UI加载完毕后再设置Button的图片。
还有方法就是用单独的布局文件,自定义一个Button(用ImageView和TextView组合),但是这样相对于我的设置方法有点不好的地方,在我的方法里不管图片资源多大在同样的手机上图片大小是一致的 不需要再增加图片资源量。好了上代码吧;
public class ImgTextButton {
private int padding = 10;//上下边距可由重载构造方法设置
private Button button;
private int ImgId; //图片资源ID
public ImgTextButton(Button button, int ResId) {
this.button = button;
this.ImgId = ResId;
}
public ImgTextButton(Button button, int ResId, int padding) {
this.button = button;
this.ImgId = ResId;
this.padding = padding;
}
public void setImgToText() {
ViewTreeObserver vto2