我正在使用Android应用程序的内置主题:
<style name="AppTheme" parent="android:Theme.Black">
<!-- Customize your theme here. -->
</style>
我很喜欢这个主题,但是我想改变一个按钮的背景颜色。这是默认的效果:
当我给这个按钮添加一个背景颜色(android:background="@color/play_bg"
)时,会出现以下情况:
嘿!?它基本上改变了所有按钮的大小、内边距和外边距!
所以我使用了 backgroundTint
属性(android:backgroundTint="@color/play_bg"
),得到了期望的结果:
不幸的是,这只支持从 API 版本 21 开始,这对我来说不可接受。
所以有两个问题:
- 为什么改变背景会影响其余按钮的属性?
- 如何在没有使用
backgroundTint
的情况下得到期望的结果?
还有一个额外的问题:我如何通过编程方式得到期望的结果(我的应用中有动态按钮,因此这将非常有用)?
PorterDuff.mode.MULTIPLY
是什么吗?另外,你知道为什么使用android:background="@color/..."
的“直观”解决方案不起作用吗? - Eric Leibenguth