我正在更改按钮的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。 感谢。
答案 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,删除重力和填充代码,看它是否有效
见下图