Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android: Especifique dos imágenes diferentes para el togglebutton mediante XML

Estoy intentando anular la apariencia de ToggleButton defecto. Aquí está el XML que define el ToggleButton :

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

Ahora, tenemos dos iconos de 30 x 30 que queremos usar para los estados de clic / no clic. En este momento tenemos código que cambia el icono de fondo de forma programática dependiendo del estado:

  • Datos personalizados byteArray a WebRTC videoTrack
  • Cómo poner el texto a fluir alrededor de una imagen
  • Problemas con Android XML Editor y Eclipse ... Difícil de editar manualmente XML
  • BitmapFactory.Options.inBitmap causa desgarro al cambiar mapa de imagen de ImageView a menudo
  • Velocidad lenta del controlador Viewpager en android
  • Cargar un recurso a un mapa de bits mutable
  •  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 estoy buscando una mejor manera de hacer esto. He intentado hacer un selector para la imagen de fondo, que cambiaría automáticamente entre los 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 --> 

    Pero esto no funciona; Leyendo la API ToggleButton ( http://developer.android.com/reference/android/widget/ToggleButton.html ), parece que los únicos atributos xml heredados son

      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. 

    No parece haber el atributo android: state_checked, a pesar de que la clase que tiene el método isChecked() y setChecked() .

    Así que, ¿hay una manera de hacer lo que quiero en XML, o estoy atascado con mi solución de problemas desordenado?

  • ¿Cómo crear la interfaz entre el fragmento y el adaptador?
  • ¿Hay alguna manera de eliminar un onTouchListener de un objeto de vista?
  • Cómo obtener el desplazamiento Y actual de un ScrollView
  • Selector de intenciones de participación de Android
  • Cómo hacer una fecha spinner en Android
  • Reanudar una actividad de una notificación
  • One Solution collect form web for “Android: Especifique dos imágenes diferentes para el togglebutton mediante XML”

    Su código está bien. Sin embargo, el botón de alternar mostrará el primer elemento en su selector que coincide, por lo que el valor predeterminado debe ser el último. Organizar los elementos de la siguiente manera para asegurarse de que todos serán 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> 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.