ToggleButton
hérite TextView
de sorte que vous pouvez définir un drawable pour être affiché à la des 4 frontières du texte. Vous pouvez l'utiliser pour afficher l'icône que vous souhaitez sur le dessus du texte et de masquer le texte
<ToggleButton
android:id="@+id/toggleButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@android:drawable/ic_menu_info_details"
android:gravity="center"
android:textOff=""
android:textOn=""
android:textSize="0dp" />
Le résultat par rapport à la régulière ToggleButton
ressemble
Les secondes option est d'utiliser une ImageSpan
de réellement remplacer le texte par une image. Regarde un peu mieux depuis l'icône est à la bonne position, mais ne peut pas être fait avec un layout xml directement.
Vous créez une plaine ToggleButton
<ToggleButton
android:id="@+id/toggleButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false" />
Puis réglez le "texte" programmatially
ToggleButton button = (ToggleButton) findViewById(R.id.toggleButton3);
ImageSpan imageSpan = new ImageSpan(this, android.R.drawable.ic_menu_info_details);
SpannableString content = new SpannableString("X");
content.setSpan(imageSpan, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
button.setText(content);
button.setTextOn(content);
button.setTextOff(content);
Le résultat, ici, dans le moyen - icône est placée légèrement plus faible puisqu'il prend la place du texte.