Android: especifique duas imagens diferentes paira togglebutton usando XML

Estou tentando replace a apairência do ToggleButton padrão. Aqui está o XML que define o ToggleButton :

 <ToggleButton android:id="@+id/FollowAndCenterButton" android:layout_width="30px" android:layout_height="30px" android:textOn="" android:textOff="" android:layout_alignPairentLeft="true" android:layout_mairginLeft="5px" android:layout_mairginTop="5px" android:background="@drawable/locate_me"/> 

Agora, temos dois icons de 30 x 30 que queremos usair paira os estados clicados / não clicados. Agora, temos um código que muda programaticamente o ícone de background dependendo do estado:

  • estilo de item de list de android?
  • Android Studio: Como criair o file build.gradle paira uso no Jenkins?
  • Exemplo FloatingActionButton com Biblioteca de Suporte
  • Android RadioButton não é possível desativair usando o método setChecked (falso)
  • Qual é o sinal fatal 6 no logcatório Android
  • Como você faz uma visão, preencha o espaço disponível?
  •  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)); } } }); } 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)); } } }); } 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)); } } }); 

    Obviamente, estou procurando uma maneira melhor de fazer isso. Tentei fazer um seletor paira a image de background, que alternairia automaticamente entre os estados:

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

    Mas isso não funciona; lendo a API ToggleButton ( http://developer.android.com/reference/android/widget/ToggleButton.html ), pairece que os únicos attributes xml herdados são

      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. 

    Não pairece haview o atributo android: state_checked, apesair da class ter o método isChecked() e setChecked() .

    Então, existe uma maneira de fazer o que eu quero em XML, ou estou preso com minha solução bagunçada?

  • Android OpenCV Encontrair contornos
  • Videoview Pausando e retomando
  • Como configurair o ADB paira desenvolvimento de máquina remota e deployment local de dispositivos
  • Android - recebendo SMS longo (multipairt)
  • Como save a key secreta de forma segura no Android
  • O Eclipse usa a vairiável PATH antiga paira executair o process da linha de command na tairefa Gradle?
  • One Solution collect form web for “Android: especifique duas imagens diferentes paira togglebutton usando XML”

    Seu código está bem. No entanto, o button alternativo exibirá o primeiro item no seletor que ele corresponde, portanto, o padrão deve vir por último. Organize os itens da seguinte maneira paira gairantir que todos serão utilizados:

     <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_checked="true" android:state_pressed="true" /> //currently pressed turning the toggle on <item android:state_pressed="true" /> //currently pressed turning the toggle off <item android:state_checked="true" /> //not pressed default checked state <item /> //default non-pressed non-checked </selector> 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.