android修改按钮默认padding?

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

图片描述

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

图片描述

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

感激不尽!!


更新

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

阅读 8.6k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题