Botón de esquina redondeado con color de fondo en android

Necesito hacer el botón acodado redondo con el cambio del color de fondo en androide.

¿Cómo podría hacer eso?

Ejemplo de enlace / código es muy apreciado.

Desea utilizar los Drawables de Shape de Android. http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

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

Entonces tendrías que crear un "selector" que se pueda dibujar a partir de las formas dibujables. Esto le permite hacer que el botón aparezca diferente dependiendo del estado. IE: Presionado, enfocado, etc. http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

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

Bono: Es posible que desee crear un estilo para el botón para que pueda tener que ser coherente en todo el programa. Puedes cortar este paso y simplemente establecer el androide del botón: background = "@ drawable / cool_button".

Values ​​/ styles.xml

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

¡Finalmente, el botón!

 <?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> 

Importe PorterDuff y use setColorFilter () como sigue

 import android.graphics.PorterDuff.Mode; Button btn = (Button) findViewById(R.id.myButton); btn.getBackground().setColorFilter(Color.GRAY, Mode.MULTIPLY); 
  • Analizador de XML común de Android
  • Establecer LinearLayout Orientación utilizando referencias en lugar de layout-land (sólo xml)
  • ¿Por qué el elemento Fragmento en el diseño de Android está escrito con una letra minúscula 'f'?
  • ¿Puede el color central ser reposicionado en un androide radial-gradiente dibujable?
  • No se puede usar LayoutInflater en el adaptador personalizado
  • Android Imagebutton resplandor de enfoque / tinte de color
  • El recurso colors.xml no funciona
  • ¿Cómo hacer referencia a un estilo definido en un módulo de Android con IntelliJ?
  • Escapar de espacios en blanco Android strings.xml
  • Cada vez que hago clic en un archivo XML de Android en Eclipse, carga datos para todas las versiones de API
  • Almacenamiento de IDs extraibles en una matriz XML
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.