Android按钮背景颜色

use*_*040 49 android button android-button

我试图在我的应用程序中设置按钮的背景颜色,我无法达到我想要的结果...

我试图设置的颜色是holo_green_light(#ff99cc00).为了做到这一点,我正在使用setColorFilter(0xff99cc00, PorterDuff.Mode.MULTIPLY);

我得到的颜色不仅仅是holo_green_lightlightgrey和holo_green_light.

我尝试过使用LightingColorFilter没有太大的成功.

有没有办法以编程方式进行,以便按钮看起来像一个按钮,而不是一个我需要的颜色的扁平矩形.

Beb*_*T.N 41

这是我用不同颜色做自定义Button的方法

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<stroke android:width="3dp"
        android:color="#80FFFFFF" />

  <corners android:radius="25dp" />

  <gradient android:angle="270"
            android:centerColor="#90150517"
            android:endColor="#90150517"
            android:startColor="#90150517" />
</shape>
Run Code Online (Sandbox Code Playgroud)

这样你就可以设置为背景了.

<Button android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button"
        android:layout_marginBottom="25dp"
        android:layout_centerInParent="true"
        android:background="@drawable/button"/>
Run Code Online (Sandbox Code Playgroud)

  • 对于像我这样的noob,如果你能更清楚地了解第一个代码示例应该去哪里,那将会很有帮助.它是drawables文件夹中名为Button.xml的文件吗? (10认同)
  • 海杰夫。请在res文件夹中创建一个drawable文件夹并创建一个button.xml。请复制粘贴此代码。在您的按钮背景中调用此 xml。它会起作用的。 (2认同)

小智 24

如果你想保持一般样式(圆角等)并只是改变背景颜色,那么我使用backgroundTint属性

android:backgroundTint="@android:color/holo_green_light"
Run Code Online (Sandbox Code Playgroud)

  • `android:backgroundTint`将仅用于api> = 21.使用`app:backgroundTint`代替 (5认同)

Ton*_*thy 18

按钮比仅改变一种颜色更复杂......

Android按钮是使用相当多的9补丁和状态drawables.您应该看一下Android Holo Colors来生成那些,您需要选择"Color Button",它会为您生成必要的图像和xml ...


V.N*_*ice 16

如果你不介意硬编码,你可以这样做〜> android:background ="#eeeeee"并删除你想要的任何十六进制颜色#.

看起来像这样....

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/textView1"
    android:text="@string/ClickMe"
    android:background="#fff"/>
Run Code Online (Sandbox Code Playgroud)

  • 您只需更改背景颜色即可丢失圆角和默认选择状态. (6认同)

Gia*_*ant 13

/res/drawable/button.xml使用以下内容创建 :

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<!-- you can use any color you want I used here gray color-->
 <solid android:color="#90EE90"/> 
    <corners
     android:bottomRightRadius="3dp"
     android:bottomLeftRadius="3dp"
  android:topLeftRadius="3dp"
  android:topRightRadius="3dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

然后您可以使用以下内容:

<Button
    android:id="@+id/button_save_prefs"
    android:text="@string/save"
    android:background="@drawable/button"/>
Run Code Online (Sandbox Code Playgroud)


Gab*_*tti 9

只需使用 aMaterialButtonapp:backgroundTint属性:

<MaterialButton
  app:backgroundTint="@color/my_color_selector"
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


Jon*_*han 5

为什么不直接使用setBackgroundColor(getResources().getColor(R.color.holo_light_green))

编辑:如果你想要一些看起来更像 Android 按钮的东西,你会想要创建一个渐变并将其设置为背景。有关此示例,您可以查看此问题


Meh*_*hdi 5

没有必要是那个铁杆尝试这个:

__CODE__


Sal*_*man 5

尝试这个

<androidx.appcompat.widget.AppCompatButton
    android:layout_width="wrap_content"
    android:layout_height="34dp"
    android:text="Check Out"
    android:textAllCaps="true"
    android:background="#54c2bc"
    android:textColor="#FFFFFF"
    android:textSize="9sp"/>
Run Code Online (Sandbox Code Playgroud)