更改Background Drawable后,按钮文本不再对齐

时间:2014-01-14 21:09:46

标签: android android-layout button background-drawable

我正在更改按钮的backgroundDrawable programaticaly:

myButton.setBackgroundDrawable(getResources().getDrawable(R.drawable.card_button_blue));

更改背景后,按钮中的文字不再像更改背景前那样对齐。

buttons before and after changing its background http://upload.dsliga.eu/upload/buttons.jpg

目标SDK版本为10。 感谢。

2 个答案:

答案 0 :(得分:1)

看起来setText()方法会弄乱对齐方式。更改文本后,重新应用重力和填充完成了这项工作:

myButton.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);
myButton.setPadding(12, 12, 12, 12);

答案 1 :(得分:0)

由于您使用的是9patch,您需要指定数据位于图形内部的底部和右侧边线,您可能没有在底部和9patch图形的右侧绘制整行

这就是为什么按钮内的文字停止居中的原因,因为9patch的界限不是你认为的那样

你的9patch应该(正常),在右边线的顶部和底部只留下1个像素,在底部的左边和右边留下1个像素

重绘9patch,删除重力和填充代码,看它是否有效

见下图

enter image description here