ToggleButton
наследует от TextView
, так что вы можете установить, чтобы быть вводимого коэффициента отображается на 4 границ текста.Вы можете использовать это, чтобы отобразить значок, который вы хотите на верхней части текста и скрыть фактический текст
<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" />
В результате по сравнению с обычным ToggleButton
выглядит как
Опция секунд, чтобы использовать a ImageSpan
, чтобы фактически заменить текст изображением. Выглядит немного лучше, так как значок находится в правильном положении, но не может быть выполнен с помощью макета xml напрямую.
Вы создаете простой ToggleButton
<ToggleButton
android:id="@+id/toggleButton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="false" />
Затем установите «текст» 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);
В результате здесь, в середине - иконка помещается немного ниже, так как он занимает место текста ,
Там это AFAIK - простой способ заменить текст изображением, кроме того, что вы заменяете все фоновое изображение состояния 2 тем, что хотите. Вы можете попробовать, если вы можете установить текст как изображение через [ImageSpan] (http://developer.android.com/reference/android/text/style/ImageSpan.html), как в http://stackoverflow.com/ вопросы/7616437/imagespan-in-a-widget – zapl