2010-12-02 18 views
24

que tiene un diseño de botón personalizadoencargo Android margen botón

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true"> 
     <shape> 
      <gradient android:startColor="@color/pres1" 
       android:endColor="@color/pres2" android:angle="270" /> 
      <stroke android:width="5dp" android:color="@color/stro3" /> 
      <corners android:radius="5dp" /> 
      <padding android:left="10dp" android:top="20dp" 
       android:right="10dp" android:bottom="20dp" /> 
     </shape> 
    </item> 
    <item android:state_focused="true"> 
     <shape> 
      <gradient android:endColor="@color/focu1" 
       android:startColor="@color/focu2" android:angle="270" /> 
      <stroke android:width="5dp" android:color="@color/stro2" /> 
      <corners android:radius="5dp" /> 
      <padding android:left="10dp" android:top="20dp" 
       android:right="10dp" android:bottom="20dp" /> 
     </shape> 
    </item> 
    <item> 
     <shape> 
      <gradient android:endColor="@color/norm1" 
       android:startColor="@color/norm2" android:angle="270" /> 
      <corners android:radius="5dp" /> 
      <padding android:left="10dp" android:top="20dp" 
       android:right="10dp" android:bottom="20dp" /> 
     </shape> 
    </item> 

</selector> 

Y para el siguiente lay out

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent" android:background="@color/all_white"> 

    <TextView android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:text="@string/hello" 
     android:textColor="@color/all_red" /> 

    <Button android:id="@+id/mq_categories" android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:text="Browse Quiz Categories" 
     android:background="@drawable/custom_button" /> 
    <Button android:id="@+id/mq_random" android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:text="Enter Random Quiz" 
     android:background="@drawable/custom_button" /> 

</LinearLayout> 

siguiente salida se genera

alt text

tengo que añadir un poco de margen entre botones, cualquier ayuda apreciada ..

+0

Hola, estoy buscando los colores exactos como estos botones, ¿pueden publicar el código hexadecimal de los colores? ¡Gracias! – idish

Respuesta

28

sólo lo hacen de esta manera

<Button android:id="@+id/mq_categories" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Browse Quiz Categories" 
    android:background="@drawable/custom_button" 
    android:layout_marginBottom="5dp"/> 

De esta manera se establece un margen de 5 píxeles independientes de la densidad en la parte inferior de su primer botón.

+1

Sí, pero ¿por qué el margen desaparece? Incluso si layout_margin se especifica en el estilo de botón personalizado, parece ser ignorado. – HRJ

+8

Esto implica que tengo que establecer márgenes (o relleno) en TODAS mis vistas de botón. ¿No se puede hacer esto con un tema? (Sin configurar el relleno de todas las vistas en la aplicación? Http://developer.android.com/guide/topics/ui/themes.html#ApplyATheme) – Diederik

+0

Esto funcionó de manera excelente. –

1

En lugar de usar LinearLayout, utilice RelativeLayout para que los márgenes se puedan establecer en todo lo que pueda. Saludos

+0

¿Podría explicar a qué se refiere? Realmente no lo entiendo –

+0

en Diseño main.xml cuando lo está inflando en la interfaz de usuario. Debería haber LinearLayout. Allí puede usar RalativeLayout y establecer los márgenes y las ubicaciones de los botones manteniendo la vista de texto como raíz. – Ashay

1

Tuve el mismo problema y la solución no parece estar disponible. Después de probar algunas cosas siguientes hizo el truco para mí,

  1. Definir disposición de los botones de encargo como se hace en la pregunta
  2. res Inside> Valores> archivos styles.xml, añadir el nuevo estilo como abajo,

    <style name="Widget.Button_Custom" parent="android:Widget"> 
        <item name="android:layout_margin">5dp</item> 
        <item name="android:background">@drawable/button_custom</item> 
    </style> 
    
  3. utilizar el estilo en su diseño

,

<?xml version="1.0" encoding="utf-8"?> 
<Button android:id="@+id/mq_categories" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" android:text=" 
     android:background="@drawable/custom_button" 
     style="@style/Widget.Button_Custom" 
/> 

Eso debería hacerlo. Además del margen, puede definir muchas otras propiedades en la etiqueta de estilo. ¡Espero que ayude!