2010-12-02 18 views
24

Ho un layout pulsante personalizzatoAndroid personalizzato margine

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

E per il seguito 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> 

seguente output viene generato

alt text

Ho bisogno di aggiungere un po 'di margine tra i pulsanti, Qualsiasi aiuto apprezzato ..

+0

Ciao, sto cercando i colori esatti come questi pulsanti, puoi inserire il codice esadecimale dei colori? Grazie! – idish

risposta

28

Basta farlo in questo modo

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

In questo modo si imposta un margine di 5 densità pixel indipendenti sul fondo del primo pulsante.

+1

Sì, ma perché il margine scompare? Anche se layout_margin è specificato nello stile Buttom personalizzato, sembra essere ignorato! – HRJ

+8

Ciò implica che devo impostare i margini (o riempimento) su TUTTE le mie visualizzazioni dei pulsanti. Non può essere fatto con un tema? (Senza impostare il riempimento su tutte le viste nell'app? Http://developer.android.com/guide/topics/ui/themes.html#ApplyATheme) – Diederik

+0

Questo ha funzionato in modo eccellente. –

1

Invece di utilizzare LinearLayout utilizzare RelativeLayout in modo che i margini possano essere impostati in tutto il modo possibile. Acclamazioni

+0

Spiegheresti cosa intendi? Non lo capisco davvero. –

+0

In Layout main.xml quando lo stai gonfiando nell'interfaccia utente. Ci dovrebbe essere LinearLayout. Qui puoi utilizzare RalativeLayout e impostare i margini e i posizionamenti dei pulsanti mantenendo TextView come root. – Ashay

1

Ho avuto lo stesso problema e la soluzione non sembra essere là fuori. Dopo aver provato paio di cose seguenti ha fatto il trucco per me,

  1. Definire personalizzato pulsante Layout come fatto per la questione
  2. res Interni> Valori> file styles.xml, aggiungere il nuovo stile come sotto,

    <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. utilizzare lo stile nel layout

,

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

Che dovrebbe farlo. Oltre al margine, puoi definire molte altre proprietà nel tag dello stile. Spero possa aiutare!

Problemi correlati