ToggleButton
dziedziczy z TextView
tak kanału alfa mają być wyświetlane w 4 granicami tekstu można ustawić.Można używać, aby wyświetlić żądaną ikonę na górze tekstu i ukryć rzeczywisty tekst
<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" />
Wynik porównaniu do zwykłej ToggleButton
wygląda
Opcja sekund jest użycie ImageSpan
, aby faktycznie zastąpić tekst obrazem. Wygląda trochę lepiej, ponieważ ikona jest we właściwej pozycji, ale nie można tego zrobić bezpośrednio za pomocą układu xml.
utworzyć zwykły ToggleButton
<ToggleButton
android:id="@+id/toggleButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false" />
następnie ustawić „tekst” 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);
Wynik tutaj w środku - ikona umieszczona jest nieco niższa, ponieważ zajmuje miejsce w tekście .
Nie to AFAIK nie jest łatwym sposobem zastąpienia tekstu obrazem, a także zamianą całego obrazu tła 2 stanu na taki, jaki chcesz. Możesz spróbować, jeśli możesz ustawić tekst jako obraz za pomocą [ImageSpan] (http://developer.android.com/reference/android/text/style/ImageSpan.html), jak na http://stackoverflow.com/ pytania/7616437/imagespan-in-a-widget – zapl