Androidbutton背景颜色

我想在我的应用程序中设置button的背景颜色,我无法实现我想要的结果…

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

我得到的颜色不是holo_green_light而是lightgrey和holo_green_light

我已经尝试使用LightingColorFilter没有太多的成功。

有没有办法做到这一点编程,以便button出现像一个button,而不是一个扁平的矩形与我需要的颜色。

Solutions Collecting From Web of "Androidbutton背景颜色"

button比改变一种颜色更复杂

Androidbutton是使用相当多的9个补丁和状态可绘制的。 你应该看看Android Holo Colors来生成这些颜色 ,你可以select“Color Button”,它会为你生成必要的图像&xml …

这是我用不同的颜色做自定义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> 

这样你设置为背景。

 <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"/> 

如果你不介意硬编码,你可以做到这一点〜> android:background =“#eeeeee”,并删除任何hex颜色#你想。

看起来像这样….

 <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"/> 

使用以下内容创build/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> 

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

 <Button android:id="@+id/button_save_prefs" android:text="@string/save" android:background="@drawable/button"/> 

不需要那个硬核试试这个:

YourButtonObject.setBackground(0xff99cc00) ;

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

编辑:如果你想要看起来更像一个Androidbutton的东西,你将要创build一个渐变,并将其设置为背景。 对于这个例子,你可以看看这个问题 。

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

机器人:backgroundTint = “@机器人:彩色/ holo_green_light”