android修改按钮默认padding?


android中的默认按钮样式如下:

图片描述

有一个比较大的padding,想实现如下效果

图片描述

也就是简单的修改下padding。但是我发现如果在button控件中将padding修改大些比如100dp,会正常生效,但是如果修改小些,比如3dp,就不能正常生效,请问这个问题原理是什么?如何解决?

感激不尽!!


更新

其实想要实现的效果是:给按钮指定一个padding,按钮的尺寸能够根据文字个数和padding自动调整。

ui Android

明智十七年 9 years, 7 months ago

题中默认按钮样式的高度应该是wrap_content,若想实现题中描述的效果只需给button一个精确的高度就OK了。
Button是继承的TextView,你可以去看下TextView的OnMeasure方法,当没有精确指定宽高的时候,宽高是根据规则计算出来的,绝大多数原生控件都是这样计算宽高的。
另:题中padding为3dp时不能生效可能是值太小导致看不出变化来,但这个padding是肯定会生效的

被饼干咬哭 answered 9 years, 7 months ago

Your Answer