Android 按钮背景颜色更改按钮大小
Android button background color changes button size
我正在为我的 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
如何获得预期结果?
还有一个额外的问题:如何以编程方式获得预期结果(我的应用程序中有动态按钮,所以这会非常有用)?
您可以在 Java 文件中更改此颜色。当您的主要 class 加载时,您可以获取此按钮的对象,然后更改颜色。
以下是您在清单文件中定义此按钮的方式:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PLAY"
android:id="@+id/btn1"
... />
现在在 Java 文件中添加此 XML 布局时,您需要
Button b = (Button)findViewByID(R.id.btn1);
b.getBackground().setColorFilter(0xFFFF0000,PorterDuff.Mode.MULTIPLY);
您还可以使用颜色:
COLOR.RED
下面的代码有时对我不起作用:-
b.setBackgroundColor(整数颜色)
以我为例,我会在这个过程中做
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="3dp"
android:background="@color/play_as"
android:padding="8dp"
android:text="Button" />
或者你可以使用这个link,这是创建按钮的更简单的方法
我正在为我的 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
如何获得预期结果?
还有一个额外的问题:如何以编程方式获得预期结果(我的应用程序中有动态按钮,所以这会非常有用)?
您可以在 Java 文件中更改此颜色。当您的主要 class 加载时,您可以获取此按钮的对象,然后更改颜色。
以下是您在清单文件中定义此按钮的方式:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="PLAY"
android:id="@+id/btn1"
... />
现在在 Java 文件中添加此 XML 布局时,您需要
Button b = (Button)findViewByID(R.id.btn1);
b.getBackground().setColorFilter(0xFFFF0000,PorterDuff.Mode.MULTIPLY);
您还可以使用颜色: COLOR.RED 下面的代码有时对我不起作用:- b.setBackgroundColor(整数颜色)
以我为例,我会在这个过程中做
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="3dp"
android:background="@color/play_as"
android:padding="8dp"
android:text="Button" />
或者你可以使用这个link,这是创建按钮的更简单的方法