12

この記事に従って、画像から作成されたトグル ボタンを作成することができました。私のトグルにはテキストがなく、画像のオン/オフだけです。

トグル ボタンを作成すると、引き伸ばされてプロポーションが失われます。元のサイズを維持するにはどうすればよいですか?

これらは私が使用している画像です:

の上

オフ

コード:

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

drawable/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>
4

3 に答える 3

13

次の属性を試してください<ToggleButton>

android:background="@android:color/transparent"
android:button="@drawable/toggle_bg"

動作するはずです。幸運を :)

于 2012-09-27T12:41:00.650 に答える
7

寸法は「ハードコード」されていますが、画面のサイズに合わせて調整されます。

したがって、xml は次のようになります。

android:layout_width="64dp"
android:layout_height="24dp"

dps の公式ドキュメントはこちら

于 2012-09-27T12:33:09.507 に答える
3

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

および描画可能な 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>

android:button上記の他のソリューションは、アイコンがまったく表示されない ( GINGERBREAD の場合) またはアスペクト比が失われた ( android:backgroundJELLY_BEAN_MR1 (4.2.2)の場合)ため、GINGERBREAD 以降ではうまく機能しませんでした。

于 2013-12-20T12:04:34.603 に答える