Ответ 1
Размеры "жестко запрограммированы", но они масштабируются с размером экрана.
Итак, xml может выглядеть так:
android:layout_width="64dp"
android:layout_height="24dp"
Официальная документация для dps здесь
Следуя этой статье, я смог создать кнопку переключения, состоящую из изображений. У моего переключателя нет текста, только изображения вкл./Выкл.
Когда моя кнопка переключения создается, она растягивается и теряет пропорции. Как мне сохранить ее первоначальный размер?
Вот изображения, которые я использую:
Код:
main.xml:
<ToggleButton
android:id="@+id/changeNumerals"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:checked="true"
android:background="@drawable/toggle_bg"
android:textOn=""
android:textOff=""
/>
вытяжке /toggle.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false" android:drawable="@drawable/toggle_off" />
<item android:state_checked="true" android:drawable="@drawable/toggle_on" />
</selector>
вытяжке /toggle_bg.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+android:id/background" android:drawable="@android:color/transparent" />
<item android:id="@+android:id/toggle" android:drawable="@drawable/toggle" />
</layer-list>
Размеры "жестко запрограммированы", но они масштабируются с размером экрана.
Итак, xml может выглядеть так:
android:layout_width="64dp"
android:layout_height="24dp"
Официальная документация для dps здесь
Попробуйте следующие атрибуты для <ToggleButton>
android:background="@android:color/transparent"
android:button="@drawable/toggle_bg"
Он должен работать. Удачи:)
Чтобы поддерживать версии от GINGERBREAD до текущих, я закончил использование:
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/filterPhotos"
android:checked="true"
android:textOn=""
android:textOff=""
android:paddingLeft="5dp"
android:drawableRight="@drawable/toggle_filter_photos"
android:background="@null"/>
и drawable toggle_filter_photos.xml:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/picture_filter_icons"
android:state_checked="true" />
<item android:drawable="@drawable/picture_inactive_filter_icons" />
</selector>
Другие решения, приведенные выше, плохо работали для GINGERBREAD и новее, поскольку либо иконки вообще не отображались (с android:button
на GINGERBREAD), либо соотношение сторон было потеряно (с помощью android:background
на JELLY_BEAN_MR1 (4.2 0,2)).