2012-10-07 70 views
11

enter image description hereCrear botón con esquinas redondeadas en Android

Estoy intentando crear un botón que se ve como en la imagen de arriba. Inicialmente, mi idea era crear un parche 9 y configurarlo como fondo del botón. Pero dado que este es un botón simple, creo que de alguna manera podemos dibujar esto sin usar ninguna imagen.

El color de fondo del botón es # 0c0c0c El color del borde es # 1a1a1a El color del texto es #cccccc

me encontré con una pregunta similar sobre SO pero que crea un gradiente -
Android - border for button

+1

"El color de fondo es el botón # 0c0c0c El color del borde es # 1a1a1a" - que puede ser uno * * conjunto de colores, pero se necesita más que eso. Si suponemos que desea que esos colores sean el estado normal, ¿cuáles son sus colores para el estado presionado? El estado deshabilitado? El estado enfocado? Puede haber otros estados en los que el fondo 'Button' predeterminado maneje más allá de esos, pero yo comenzaría con ellos. – CommonsWare

Respuesta

23

El La Guía del desarrollador de Android tiene una guía detallada sobre esto: Shape Drawbables.

También podría simplemente retire el elemento gradient desde el enlace que ya ha proporcionado:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <corners android:radius="3dp" /> 
    <stroke android:width="5px" android:color="#1a1a1a" /> 
</shape> 
+1

gracias :) agregó esto para obtener el sólido bg coderplus

16
<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/textView1" 
    android:layout_alignLeft="@+id/textView1" 
    android:layout_marginBottom="56dp" 
    android:text="Button" 
    android:textColor="#FF0F13" 
    android:background="@drawable/bbkg"/>//create bbkg.xml in drawable folder 

bbkg.xml // botón de fondo

<?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/pressed" /> 
    <item android:state_focused="false" 
    android:drawable="@drawable/normal" /> 
    </selector> 

normal.xml botón de fondo normal // estado

<?xml version="1.0" encoding="UTF-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <solid android:color="#10EB0A"/>  
    <stroke android:width="3dp" 
     android:color="#0FECFF" /> 
    <padding android:left="5dp" 
     android:top="5dp" 
     android:right="5dp" 
     android:bottom="5dp"/> 
    <corners android:bottomRightRadius="7dp" 
     android:bottomLeftRadius="7dp" 
     android:topLeftRadius="7dp" 
     android:topRightRadius="7dp"/> 
    </shape> 

pressed.xml // fondo botón presionado estado

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
<solid android:color="#FF1A47"/>  
<stroke android:width="3dp" 
     android:color="#0FECFF"/> 

<corners android:bottomRightRadius="7dp" 
     android:bottomLeftRadius="7dp" 
     android:topLeftRadius="7dp" 
     android:topRightRadius="7dp"/> 
</shape> 
+1

Puede cambiar el borde del botón y el color de fondo de botón en estado normal y prensado. Solo use los códigos de color apropiadamente – Raghunandan

3

Si quieres algo como esto

botón de vista previa

aquí está el código.

1.Create un archivo XML en la carpeta estirable como mybutton.xml y pegar el siguiente marcado:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
<item android:state_pressed="true" > 
    <shape android:shape="rectangle" > 
     <corners android:radius="3dip" /> 
     <stroke android:width="1dip" android:color="#5e7974" /> 
     <gradient android:angle="-90" android:startColor="#345953" android:endColor="#689a92" />    
    </shape> 
</item> 
<item android:state_focused="true"> 
    <shape android:shape="rectangle" > 
     <corners android:radius="3dip" /> 
     <stroke android:width="1dip" android:color="#5e7974" /> 
     <solid android:color="#58857e"/>  
    </shape> 
</item> 
<item > 
    <shape android:shape="rectangle" > 
     <corners android:radius="3dip" /> 
     <stroke android:width="1dip" android:color="#5e7974" /> 
     <gradient android:angle="-90" android:startColor="#8dbab3" android:endColor="#58857e" />    
    </shape> 
</item> 
</selector> 

2.Now utilizar este estirable para el fondo de su vista. Si la vista es botón y luego algo como esto:

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:padding="10dp" 
    android:textColor="#ffffff" 
    android:background="@drawable/mybutton" 
    android:text="Buttons" />