Sto tentando di ignorare l'aspetto predefinito ToggleButton
. Ecco il codice XML che definisce il ToggleButton
:Android: specificare due immagini diverse per togglebutton utilizzando XML
<ToggleButton android:id="@+id/FollowAndCenterButton"
android:layout_width="30px"
android:layout_height="30px"
android:textOn="" android:textOff="" android:layout_alignParentLeft="true"
android:layout_marginLeft="5px"
android:layout_marginTop="5px" android:background="@drawable/locate_me"/>
Ora, abbiamo due 30 x 30 icone che vogliamo usare per le/gli stati non-cliccato cliccato. In questo momento abbiamo il codice che cambia a livello di codice l'icona di sfondo a seconda dello stato:
centeredOnLocation.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (centeredOnLocation.isChecked()) {
centeredOnLocation.setBackgroundDrawable(getResources().getDrawable(R.drawable.locate_me_on));
} else {
centeredOnLocation.setBackgroundDrawable(getResources().getDrawable(R.drawable.locate_me));
}
}
});
Ovviamente sto cercando un modo migliore per farlo. Ho provato a fare un selettore per l'immagine di sfondo, che passa automaticamente tra gli stati:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/locate_me" /> <!-- default -->
<item android:state_checked="true"
android:drawable="@drawable/locate_me_on" /> <!-- pressed -->
<item android:state_checked="false"
android:drawable="@drawable/locate_me" /> <!-- unchecked -->
Ma questo non funziona; leggere il ToggleButton
API (http://developer.android.com/reference/android/widget/ToggleButton.html), risulta che gli unici attributi XML ereditati sono
XML Attributes
Attribute Name Related Method Description
android:disabledAlpha The alpha to apply to the indicator when disabled.
android:textOff The text for the button when it is not checked.
android:textOn The text for the button when it is checked.
Non sembra essere l'androide: state_checked attributo, nonostante la classe avente il metodo isChecked()
e setChecked()
.
Quindi, c'è un modo per fare ciò che voglio in XML, o sono bloccato con la mia soluzione disordinata?
Nota, se non si utilizza il testo, penso che sia preferibile utilizzare 'CompoundButton'. – Timmmm
Ignora questo; 'CompoundButton' è astratto! – Timmmm