Цвет фона кнопки Android

Я пытаюсь установить цвет фона кнопки в моем приложении, и я не могу добиться результата, который я хочу …

Цвет, который я пытаюсь установить, – holo_green_light(#ff99cc00) . Для этого я использую setColorFilter(0xff99cc00, PorterDuff.Mode.MULTIPLY);

Цвет, который я получаю, – это не holo_green_light а смесь holo_green_light и holo_green_light .

Я пробовал использовать LightingColorFilter без особого успеха.

Есть ли способ сделать это программно, так что кнопка отображается как кнопка, а не плоский прямоугольник с цветом, который мне нужен.

Solutions Collecting From Web of "Цвет фона кнопки Android"

Кнопки более сложные, чем просто изменение одного цвета …

Кнопки Android сделаны с использованием довольно много 9-патчей и штатных чертежей. Вы должны взглянуть на Android Holo Colors, чтобы сгенерировать их, вы бы хотели выбрать «Color Button», и он будет генерировать необходимые изображения и xml для вас …

Это мой способ сделать пользовательскую кнопку с другим цветом. `

 <?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" и удалить любой гексаговый цвет #, который вы хотите.

Похоже на это ….

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

Не нужно быть этим хардкором, попробуйте это:

YourButtonObject.setBackground(0xff99cc00) ;

Создайте /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"/> 

Почему бы просто не использовать setBackgroundColor(getResources().getColor(R.color.holo_light_green)) ?

Изменить: если вы хотите иметь нечто похожее на кнопку Android, вы захотите создать градиент и установить его как фон. Например, вы можете проверить этот вопрос .