Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何更改按钮的颜色?_Android_Android Layout_Android Button - Fatal编程技术网

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:

我是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

  • 去图书馆
  • 展开它,右键单击drawable
  • 新建->可绘制资源文件
  • 文件名:自定义按钮,单击确定
  • 自定义按钮.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

  • 扩展值
  • 双击colors.xml
  • 复制下面的代码
  • Colors.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>
    
    
    #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
    ,但也没有成功。)