如何改变按钮的颜色?
How to change the color of a button?
我是 android 编程新手。如何更改按钮的颜色?
<Button
android:id="@+id/btn"
android:layout_width="55dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:text="Button Text"
android:paddingBottom="20dp"/>
对于文本颜色添加:
android:textColor="<hex color>"
对于背景颜色添加:
android:background="<hex color>"
从API 21你可以使用:
android:backgroundTint="<hex color>"
android:backgroundTintMode="<mode>"
注意: 如果你要使用 android/java 你真的应该学习如何 google ;)
How to customize different buttons in Android
您可以通过两种方式更改颜色;通过 XML 或通过编码。我会推荐 XML,因为初学者更容易理解。
XML:
<Button
android:background="@android:color/white"
android:textColor="@android:color/black"
/>
您也可以使用十六进制值 ex。
android:background="@android:color/white"
编码:
//btn represents your button object
btn.setBackgroundColor(Color.WHITE);
btn.setTextColor(Color.BLACK);
以编程方式更改按钮的颜色
这里是:
Button b1;
//colorAccent is the resource made in the color.xml file , you can change it.
b1.setBackgroundResource(R.color.colorAccent);
这是我的代码,在按钮、线性、约束和滚动布局上制作不同的颜色
首先,您需要在您的可绘制对象上创建一个custom_button.xml
- 转到资源
- 展开它,右击drawable
- 新建 -> 可绘制资源文件
- 文件名:custom_button,单击“确定”
Custom_Button.xml代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/red"/> <!-- pressed -->
<item android:state_focused="true" android:drawable="@color/blue"/> <!-- focused -->
<item android:drawable="@color/black"/> <!-- default -->
</selector>
其次,去res
- 展开值
- 双击colors.xml
- 复制下面的代码
Colors.xml代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="black">#000</color>
<color name="violet">#9400D3</color>
<color name="indigo">#4B0082</color>
<color name="blue">#0000FF</color>
<color name="green">#00FF00</color>
<color name="yellow">#FFFF00</color>
<color name="orange">#FF7F00</color>
<color name="red">#FF0000</color>
</resources>
以下截图
XML 编码
设计预览
从 API 23 开始,您可以:
btn.setBackgroundColor(getResources().getColor(R.color.colorOffWhite));
并且您的 colors.xml 必须包含:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorOffWhite">#80ffffff</color>
</resources>
正确的方法...
以下方法确实有效。
如果你愿意 - 使用主题
默认情况下,按钮颜色为 android:colorAccent
。所以,如果您创建这样的样式...
<style name="Button.White" parent="ThemeOverlay.AppCompat">
<item name="colorAccent">@android:color/white</item>
</style>
你可以这样使用它...
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/Button.White"
/>
或者 - 使用色调
您可以简单地为 API 级别 21 及更高添加 android:backgroundTint
,或为 API 级别 7 及更高添加 app:backgroundTint
。
有关详细信息,请参阅 this blog。
接受的答案有问题...
如果用颜色替换背景,按钮的效果会减弱,颜色会应用到按钮的整个区域。它不会考虑填充、阴影和角半径。
如果您尝试将背景设置为可绘制文件夹中的其他资源文件,例如 custom-button.xml,请尝试以下操作:
button_name.setBackgroundResource(R.drawable.custom_button_file_name);
例如。比如说,你有一个 custom-button.xml 文件。那么,
button_name.setBackgroundResource(R.drawable.custom_button);
将按钮背景设置为 自定义-button.xml 文件。
您可以像这样更改 XML 中的值:
<Button
android:background="#FFFFFF"
../>
在这里,您可以从资源或十六进制添加任何其他颜色。
同样,您也可以像这样从代码中更改这些值:
demoButton.setBackgroundColor(Color.WHITE);
另一种简单的方法是制作一个drawable,根据您的喜好自定义角和形状,并设置drawable的背景颜色和描边。
例如
button_background.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp" android:color="#ff207d94" />
<corners android:radius="5dp" />
<solid android:color="#FFFFFF" />
</shape>
然后将这个形状设置为按钮的背景。
<Button
android:background="@drawable/button_background.xml"
../>
希望对您有所帮助,祝您好运!
如果第一个解决方案不起作用,试试这个:
android:backgroundTint="@android:color/white"
我希望这项工作。
编码愉快。
上面介绍了许多很棒的方法 - 一个较新的笔记
Material 的早期版本中似乎存在一个错误,阻止了某些类型的覆盖按钮颜色。
参见:[Button] android:background not working #889
我今天用的是Material 1.3.0。我只是按照链接 post 中 KavinduDissanayake 的指示使用了这种格式:
app:backgroundTint="@color/purple_700"
(当然,我将选择的颜色更改为我自己的主题。)这个解决方案对我来说非常简单。
看图容易理解
我有同样的问题
我的解决方案是背景颜色是我主题的 colorPrimary
您可以使用自定义主题作为上面所说的一个答案,并将 colorPrimary 设置为您想要的
1- 将此添加到资源中的“value/themes/themes.xml”
<resources>
<style name="Button.color" parent="ThemeOverlay.AppCompat">
<item name="colorPrimary">@color/purple_500</item>
</style>
</resources>
2- 将此行添加到您想要具有颜色的按钮
<Button
android:theme="@style/Button.color"/>
在不丢失按钮重影和其他功能的情况下更改按钮颜色的最佳方法。
试试看,你会发现它是最好的
app:backgroundTint="@color/color_name"
转到 res > values > themes > theme.xml
/themes.xml
。然后更改:
<style name="Theme.BirthdayGreet" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
收件人:
<style name="Theme.MemeShare" parent="Theme.AppCompat.Light.NoActionBar">)>
在主题中更改为:
parent="Theme.MaterialComponents.DayNight.DarkActionBar"
对此:
parent="Theme.AppCompat.Light.NoActionBar"
经过多次搜索,它对我有用
API21背景以上的backgroundTint没有效果默认取主题的colorPrimary
- 在 android 工作室的新更新中,您必须更改
按钮 -> androidx.appcompat.widget.AppCompatButton
那么只有按钮颜色会改变
res/drawable/button_color_border.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#FFDA8200" />
<stroke
android:width="3dp"
android:color="#FFFF4917" />
</shape>
并将按钮添加到您的 XML activity 布局并设置背景
android:background="@drawable/button_color_border".
<androidx.appcompat.widget.AppCompatButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_border"
android:text="Button" />
Button background color in xml
<Button
android:id="@+id/button"
android:background="#0000FF"
android:textColor="#FFFFFF"/>
Change button background color programmatically
Button button = findViewById(R.id.button);
button.setBackgroundColor(Color.BLUE);
Custom button background
shape.xml [res
--> drawble
]
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp" />
<gradient
android:angle="0"
android:endColor="#0000FF"
android:startColor="#00FFFF" />
<stroke
android:width="1dp"
android:color="#000000" />
</shape>
添加这一行
android:background="@drawable/shape"
完整代码
<Button
android:id="@+id/button"
android:background="@drawable/shape"
android:textColor="#FFFFFF"/>
Material Design Button
更改按钮背景颜色
app:backgroundTint="#0000FF"
按钮描边颜色
app:strokeColor="#000000"
按钮笔划宽度
app:strokeWidth="2dp"
完整代码
<Button
android:id="@+id/button"
android:textColor="#FFFFFF"
app:backgroundTint="#0000FF"
app:strokeColor="#000000"
app:strokeWidth="2dp"/>
希望对您有所帮助!
通常 API 21 岁及以上:
只需 PUT 这个属性:android:backgroundTint="你的颜色"
我是 android 编程新手。如何更改按钮的颜色?
<Button
android:id="@+id/btn"
android:layout_width="55dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:text="Button Text"
android:paddingBottom="20dp"/>
对于文本颜色添加:
android:textColor="<hex color>"
对于背景颜色添加:
android:background="<hex color>"
从API 21你可以使用:
android:backgroundTint="<hex color>"
android:backgroundTintMode="<mode>"
注意: 如果你要使用 android/java 你真的应该学习如何 google ;)
How to customize different buttons in Android
您可以通过两种方式更改颜色;通过 XML 或通过编码。我会推荐 XML,因为初学者更容易理解。
XML:
<Button
android:background="@android:color/white"
android:textColor="@android:color/black"
/>
您也可以使用十六进制值 ex。
android:background="@android:color/white"
编码:
//btn represents your button object
btn.setBackgroundColor(Color.WHITE);
btn.setTextColor(Color.BLACK);
以编程方式更改按钮的颜色
这里是:
Button b1;
//colorAccent is the resource made in the color.xml file , you can change it.
b1.setBackgroundResource(R.color.colorAccent);
这是我的代码,在按钮、线性、约束和滚动布局上制作不同的颜色
首先,您需要在您的可绘制对象上创建一个custom_button.xml
- 转到资源
- 展开它,右击drawable
- 新建 -> 可绘制资源文件
- 文件名:custom_button,单击“确定”
Custom_Button.xml代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/red"/> <!-- pressed -->
<item android:state_focused="true" android:drawable="@color/blue"/> <!-- focused -->
<item android:drawable="@color/black"/> <!-- default -->
</selector>
其次,去res
- 展开值
- 双击colors.xml
- 复制下面的代码
Colors.xml代码
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
<color name="black">#000</color>
<color name="violet">#9400D3</color>
<color name="indigo">#4B0082</color>
<color name="blue">#0000FF</color>
<color name="green">#00FF00</color>
<color name="yellow">#FFFF00</color>
<color name="orange">#FF7F00</color>
<color name="red">#FF0000</color>
</resources>
以下截图
从 API 23 开始,您可以:
btn.setBackgroundColor(getResources().getColor(R.color.colorOffWhite));
并且您的 colors.xml 必须包含:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorOffWhite">#80ffffff</color>
</resources>
正确的方法...
以下方法确实有效。
如果你愿意 - 使用主题
默认情况下,按钮颜色为 android:colorAccent
。所以,如果您创建这样的样式...
<style name="Button.White" parent="ThemeOverlay.AppCompat">
<item name="colorAccent">@android:color/white</item>
</style>
你可以这样使用它...
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:theme="@style/Button.White"
/>
或者 - 使用色调
您可以简单地为 API 级别 21 及更高添加 android:backgroundTint
,或为 API 级别 7 及更高添加 app:backgroundTint
。
有关详细信息,请参阅 this blog。
接受的答案有问题...
如果用颜色替换背景,按钮的效果会减弱,颜色会应用到按钮的整个区域。它不会考虑填充、阴影和角半径。
如果您尝试将背景设置为可绘制文件夹中的其他资源文件,例如 custom-button.xml,请尝试以下操作:
button_name.setBackgroundResource(R.drawable.custom_button_file_name);
例如。比如说,你有一个 custom-button.xml 文件。那么,
button_name.setBackgroundResource(R.drawable.custom_button);
将按钮背景设置为 自定义-button.xml 文件。
您可以像这样更改 XML 中的值:
<Button
android:background="#FFFFFF"
../>
在这里,您可以从资源或十六进制添加任何其他颜色。
同样,您也可以像这样从代码中更改这些值:
demoButton.setBackgroundColor(Color.WHITE);
另一种简单的方法是制作一个drawable,根据您的喜好自定义角和形状,并设置drawable的背景颜色和描边。 例如
button_background.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp" android:color="#ff207d94" />
<corners android:radius="5dp" />
<solid android:color="#FFFFFF" />
</shape>
然后将这个形状设置为按钮的背景。
<Button
android:background="@drawable/button_background.xml"
../>
希望对您有所帮助,祝您好运!
如果第一个解决方案不起作用,试试这个:
android:backgroundTint="@android:color/white"
我希望这项工作。 编码愉快。
上面介绍了许多很棒的方法 - 一个较新的笔记
Material 的早期版本中似乎存在一个错误,阻止了某些类型的覆盖按钮颜色。
参见:[Button] android:background not working #889
我今天用的是Material 1.3.0。我只是按照链接 post 中 KavinduDissanayake 的指示使用了这种格式:
app:backgroundTint="@color/purple_700"
(当然,我将选择的颜色更改为我自己的主题。)这个解决方案对我来说非常简单。
看图容易理解
我有同样的问题 我的解决方案是背景颜色是我主题的 colorPrimary 您可以使用自定义主题作为上面所说的一个答案,并将 colorPrimary 设置为您想要的
1- 将此添加到资源中的“value/themes/themes.xml”
<resources>
<style name="Button.color" parent="ThemeOverlay.AppCompat">
<item name="colorPrimary">@color/purple_500</item>
</style>
</resources>
2- 将此行添加到您想要具有颜色的按钮
<Button
android:theme="@style/Button.color"/>
在不丢失按钮重影和其他功能的情况下更改按钮颜色的最佳方法。
试试看,你会发现它是最好的
app:backgroundTint="@color/color_name"
转到 res > values > themes > theme.xml
/themes.xml
。然后更改:
<style name="Theme.BirthdayGreet" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
收件人:
<style name="Theme.MemeShare" parent="Theme.AppCompat.Light.NoActionBar">)>
在主题中更改为: parent="Theme.MaterialComponents.DayNight.DarkActionBar" 对此: parent="Theme.AppCompat.Light.NoActionBar"
经过多次搜索,它对我有用
API21背景以上的backgroundTint没有效果默认取主题的colorPrimary
- 在 android 工作室的新更新中,您必须更改
按钮 -> androidx.appcompat.widget.AppCompatButton
那么只有按钮颜色会改变
res/drawable/button_color_border.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#FFDA8200" />
<stroke
android:width="3dp"
android:color="#FFFF4917" />
</shape>
并将按钮添加到您的 XML activity 布局并设置背景 android:background="@drawable/button_color_border".
<androidx.appcompat.widget.AppCompatButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_border"
android:text="Button" />
Button background color in xml
<Button
android:id="@+id/button"
android:background="#0000FF"
android:textColor="#FFFFFF"/>
Change button background color programmatically
Button button = findViewById(R.id.button);
button.setBackgroundColor(Color.BLUE);
Custom button background
shape.xml [res
--> drawble
]
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp" />
<gradient
android:angle="0"
android:endColor="#0000FF"
android:startColor="#00FFFF" />
<stroke
android:width="1dp"
android:color="#000000" />
</shape>
添加这一行
android:background="@drawable/shape"
完整代码
<Button
android:id="@+id/button"
android:background="@drawable/shape"
android:textColor="#FFFFFF"/>
Material Design Button
更改按钮背景颜色
app:backgroundTint="#0000FF"
按钮描边颜色
app:strokeColor="#000000"
按钮笔划宽度
app:strokeWidth="2dp"
完整代码
<Button
android:id="@+id/button"
android:textColor="#FFFFFF"
app:backgroundTint="#0000FF"
app:strokeColor="#000000"
app:strokeWidth="2dp"/>
希望对您有所帮助!
通常 API 21 岁及以上: 只需 PUT 这个属性:android:backgroundTint="你的颜色"