Круглая кнопка с фоном в андроиде

Мне нужно сделать круглая кнопка с изменением цвета фона в андроиде.

Как я могу это сделать?

Пример ссылки / кода очень ценится.

Solutions Collecting From Web of "Круглая кнопка с фоном в андроиде"

Вы хотите использовать Android Shape Drawables. http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

рисуем / cool_button_background.xml

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="@dimen/corner_radius" /> <gradient android:angle="270" android:startColor="@color/almost_white" android:endColor="@color/somewhat_gray" android:type="linear" /> </shape> 

Тогда вам придется создать «селектор», который можно извлечь из этих фигурных чертежей. Это позволяет вам отображать кнопку в зависимости от состояния. IE: нажата, сфокусирована и т. Д. http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

рисуем / cool_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="@drawable/cool_inner_press_bottom" /> <item android:state_focused="true" android:state_enabled="true" android:state_window_focused="true" android:drawable="@drawable/cool_inner_focus_bottom" /> <item android:drawable="@drawable/cool_button_background" /> </selector> 

Бонус: вам может понадобиться создать стиль для кнопки, чтобы вы могли быть последовательными во всей программе. Вы можете вырезать этот шаг и просто установить андроид кнопки: background = "@ drawable / cool_button".

Значения / styles.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="MyCoolButton"> <item name="android:background">@drawable/cool_button_background</item> </style> </resources> 

Наконец, кнопка!

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@drawable/appwidget_bg"> <Button android:id="@+id/btnAction" android:layout_width="wrap_content" android:layout_weight="wrap_content" style="@style/CoolButton" /> </LinearLayout> 

Импортируйте PorterDuff и используйте setColorFilter () следующим образом

 import android.graphics.PorterDuff.Mode; Button btn = (Button) findViewById(R.id.myButton); btn.getBackground().setColorFilter(Color.GRAY, Mode.MULTIPLY);