2013-07-09 13 views
9

Voglio questo tipo di look. Non sembrano tabs quindi credo che siano pulsanti.Creazione di pulsanti che sembrano schede in Android

enter image description here

posso acheive tipo simile con toggle button mantenendo un selettore a drawable.

<ToggleButton 
    android:id="@+id/toggleButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center_horizontal" 
    android:background="@drawable/custom_selector"  
    android:textOn=" Button1 Button2" 
    android:textOff=" Button1 Button2" /> 

Ma hanno solo due valori e facendo clic sulla scheda selezionata l'altro selezionato e quello attuale sono deselezionati. Ma voglio esattamente tab. Quindi qualcuno può aiutarmi a raggiungerlo? Grazie in anticipo.

+0

Non utilizzare pulsante interruttore, prendere quattro pulsanti e selettore uso in drawable. –

+0

@ManojPal Grazie, ma quelli non danno l'aspetto delle forme d'angolo sopra e tutto. Anche selezionando un pulsante il pulsante selezionato in precedenza dovrebbe tornare a colorare normalmente. – rick

+0

è un po 'complicato, è possibile utilizzare le immagini di forma ad angolo come sfondo nei pulsanti e aggiungere una condizione che, se si seleziona un pulsante, modificare lo sfondo di altri pulsanti normalmente. e darà sensazione di tab. –

risposta

13

È necessario creare selettore per tutti i pulsante e utilizzare RadioGroup con sfondo e il pulsante nulla ..

Segui @Andru risposta per creare Selector ..

Di seguito è Codice RadioGroup.

<RadioGroup 
    android:id="@+id/rdogrp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="8dp" 
    android:gravity="center" 
    android:orientation="horizontal" > 

    <RadioButton 
     android:id="@+id/btn1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="0dp" 
     android:background="@drawable/btn1Selector" 
     android:button="@null" 
     android:checked="true" 
     android:gravity="center" /> 

    <RadioButton 
     android:id="@+id/btn2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="0dp" 
     android:background="@drawable/btn2Selector" 
     android:button="@null" 
     android:gravity="center" /> 

    <RadioButton 
     android:id="@+id/btn3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="0dp" 
     android:background="@drawable/btn3Selector" 
     android:button="@null" 
     android:gravity="center" /> 

    <RadioButton 
     android:id="@+id/btn4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="0dp" 
     android:background="@drawable/btn4Selector" 
     android:button="@null" 
     android:gravity="center" /> 
</RadioGroup> 

ecco codice di esempio per btn1Selector.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:drawable="@drawable/btn1_selected" android:state_checked="true" /> 
    <item android:drawable="@drawable/btn1_normal" android:state_checked="false"/> 
</selector> 
+0

+1 Grazie, lo controllerà. – rick

1

si può fare qualcosa di simile, invece di pulsante di commutazione utilizzare i pulsanti normali.
pulsante se "Dati" cliccato fare come questo

data(View v) 
{ 
    databtn.setBackgroundResource(R.drawable.image1); 
    w_chartbtn.setBackgroundResource(R.drawable.image2); 
    H_chartbtn.setBackgroundResource(R.drawable.image2); 
} 

se tasto "H-chart" cliccato

H_chart(View v) 
{ 
    databtn.setBackgroundResource(R.drawable.image2); 
    w_chartbtn.setBackgroundResource(R.drawable.image2); 
    H_chartbtn.setBackgroundResource(R.drawable.image1); 
} 
1

Utilizzo semplice pulsante al posto del tasto toogle. E sfondo impostato in questo modo:

sto dando esempio per 1 pulsante:

android:background="@drawable/data_button_select_state" 

e aggiungere un file XML nel 'disegnabile' cartella denominata data_button_select_state:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
<item android:drawable="@drawable/data_image_selected_state" 
     android:state_selected="true" /> 
<item android:drawable="@drawable/data_image_selected_state" 
     android:state_pressed="true" /> 
<item android:drawable="@drawable/data_image_without_selected" /> 
</selector> 

Ora aggiungere il codice in file di java come questo:

quando il pulsante di dati cliccato:

data_button.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      data_button.setActivated(true); 
      H_chart_button.setActivated(false); 
          w_chart_button.setActivated(false); 
          hc_chart_button.setActivated(false); 

     } 
    }); 

cambia anche un altro pulsante come questo. Questa volontà potrebbe aiutare ...

+0

+1 grazie. Lo proverò – rick

Problemi correlati