Quiero hacer un estilo de botón en Android con dos colores de fondo, como la siguiente imagen:Android: botón con dos colores de fondo
http://i.stack.imgur.com/ExKXl.png
¿Es posible hacer con los recursos dibujable? He estado buscando una solución en http://developer.android.com/guide/topics/resources/drawable-resource.html pero ninguno de ellos puede tener dos colores.
¿Hay alguna manera?
[la edición de la respuesta]
La solución fue crear un <layer-list>
con los objetos y cada uno tiene <item>
<shape>
. El código es abajo (todo el botón tiene la altura 32DP así que utilicé media altura para cada color):
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Top color -->
<item android:bottom="16dp">
<shape android:shape="rectangle">
<solid android:color="#FF0000" /> <!-- RED -->
</shape>
</item>
<!-- Bottom color -->
<item android:top="16dp">
<shape android:shape="rectangle">
<solid android:color="#00FF00" /> <!-- GREEN -->
</shape>
</item>
</layer-list>
pero no tenía otro tema, yo estaba tratando de poner esquinas de cada forma. He intentado poner android:topLeftRadius
y android:topRightRadius
en la primera forma y android:bottomLeftRadius
y android:bottomRightRadius
en la segunda forma, pero no me resultó muestro las esquinas! Entonces la solución fue usar android:radius
(¡todas las 8 esquinas se redondearon, maldición!) Y poner otros dos elementos para superar las esquinas adicionales. Al final, el XML tiene así:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Top color with corner -->
<item android:bottom="16dp">
<shape android:shape="rectangle">
<corners android:radius="5dp" /> <!-- It´s obligatory, It didn´t work only with android:topLeftRadius and android:topRightRadius -->
<solid android:color="#FF0000" /> <!-- RED Color-->
</shape>
</item>
<!-- Takes off the center corner -->
<item android:top="8dp" android:bottom="8dp">
<shape android:shape="rectangle">
<solid android:color="#FF0000" /> <!-- RED Color-->
</shape>
</item>
<!-- Bottom color with corner -->
<item android:top="16dp">
<shape android:shape="rectangle">
<corners android:radius="5dp" /> <!-- It´s obligatory, It didn´t work only with android:bottomLeftRadius and android:bottomRightRadius -->
<solid android:color="#00FF00" /> <!-- GREEN Color -->
</shape>
</item>
<!-- Takes off the center corner -->
<item android:top="16dp" android:bottom="8dp">
<shape android:shape="rectangle">
<solid android:color="#00FF00" /> <!-- GREEN Color -->
</shape>
</item>
</layer-list>
¡Está funcionando ahora, gracias a todos!
posible duplicado de [? Fondo bandas con dos colores] (http://stackoverflow.com/questions/8727238/banded-background-with-two-colors) –