Android 如何更改按钮的颜色?
我是android编程新手。如何更改按钮的颜色Android 如何更改按钮的颜色?,android,android-layout,android-button,Android,Android Layout,Android 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:
<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>"
android:textColor=“”
对于背景色添加:
android:textColor="<hex color>"
android:background="<hex color>"
android:background=“”
从API 21可以使用:
android:backgroundTint="<hex color>"
android:backgroundTintMode="<mode>"
android:backgroundTint=“”
android:backgroundTintMode=“”
注意:如果你要使用android/java,你真的应该学习如何使用google;)
您可以通过两种方式更改颜色;通过XML或通过编码。我建议使用XML,因为它对初学者来说更容易理解 XML:
<Button
android:background="@android:color/white"
android:textColor="@android:color/black"
/>
//btn represents your button object
btn.setBackgroundColor(Color.WHITE);
btn.setTextColor(Color.BLACK);
编码:
<Button
android:background="@android:color/white"
android:textColor="@android:color/black"
/>
//btn represents your button object
btn.setBackgroundColor(Color.WHITE);
btn.setTextColor(Color.BLACK);
以编程方式更改按钮颜色的步骤 这是:
这是我的代码,用于在按钮上制作不同的颜色,以及线性、约束和滚动布局 首先,您需要在您的drawable上创建一个自定义的_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>
<?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>
第二,进入res
<?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>
<?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>
#3F51B5
#303F9F
#FF4081
#000
#9400D3
#4B0082
#0000FF
#00FF00
#FFFF00
#FF7F00
#FF0000
下面的屏幕截图
XML编码
通过编程进行设计预览:
btn.setBackgroundColor(getResources().getColor(R.color.colorOffWhite));
并且您的colors.xml必须包含
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorOffWhite">#80ffffff</color>
</resources>
#80ffffff
正确的方法。。。
以下方法实际上是有效的
如果愿意-使用主题默认情况下,按钮颜色为android:colorAccent。所以,如果你创建一个这样的样式
@android:彩色/白色
你可以这样使用它
或者-使用色调您可以简单地为API级别21及更高添加
android:backgroundTint
,或为API级别7及更高添加app:backgroundTint
有关详细信息,请参阅
接受答案的问题。。。
如果用颜色替换背景,则会失去按钮的效果,并且颜色将应用于按钮的整个区域。它不考虑填充、阴影和角半径。如果您试图将背景设置为可绘制文件夹中的其他资源文件,例如custom-button.xml,请尝试以下操作:
button_name.setBackgroundResource(R.drawable.custom_button_file_name);
android:backgroundTint="@android:color/white"
比如说,您有一个custom-button.xml文件。那么
button_name.setBackgroundResource(R.drawable.custom_button);
将按钮背景设置为custom-button.xml文件。您可以按如下方式更改xml中的值:
<Button
android:background="#FFFFFF"
../>
demoButton.setBackgroundColor(Color.WHITE);
另一个简单的方法是制作一个可绘制的,根据您的喜好定制角落和形状,并设置可绘制的背景颜色和笔划。
例如
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"
../>
希望这有帮助,祝你好运 如果第一个解决方案不起作用,请尝试以下方法:
button_name.setBackgroundResource(R.drawable.custom_button_file_name);
android:backgroundTint="@android:color/white"
我希望这能奏效。
愉快的编码。上面介绍了许多很棒的方法-一个更新的注释
在早期版本的材质中似乎存在一个bug,它阻止了某些类型的覆盖按钮颜色
见:
我今天使用的是材料1.3.0。我只是按照链接帖子中KavinduDissanayake的指示使用了以下格式:
app:backgroundTint="@color/purple_700"
(当然,我把选择的颜色改成了我自己的主题。)这个解决方案对我来说非常简单。你应该在这里询问之前搜索一下。:)@也许我没有好好研究。但是,我认为Android SDK用户界面和材料设计的细微变化并没有直接记录下来,甚至记录得不好。这就像有时候你应该依赖IDE提示,有时候依赖文档,有时候依赖论坛上的一些东西,比如堆栈溢出。我是在查阅材料设计文档后来到这里的。我想指出,无论您的经验水平如何,使用布局XML都是一个好主意,尤其是在颜色不需要更改的情况下。该死,即使它真的改变了,我也会使用布局绑定。不要使用这个-你会失去按钮动画(提升和涟漪)@SomeoneSomewhere这是对的。看,背景色才是最好的选择。出于某种原因,这两种方法对我都不起作用。虽然我可以在“设计”选项卡上看到它,但当我运行应用程序时,它仍然会显示默认颜色。(我也尝试了
android:background
,但也没有成功。)