104

ON / OFF状態ではなく、2つの画像を使用してトグルボタンを作成する必要があります。

オフの状態で背景画像を設定しましたが、背景画像を使用している間はオフのテキストを削除できません。

そして、トグルボタンをクリックして別の画像をオン状態に設定することはできません:(私はAndroidの初心者です。皆さんがこの問題から抜け出すのを手伝ってくれることを願っています

4

3 に答える 3

226

これを行う:

<ToggleButton 
        android:id="@+id/toggle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/check"   <!--check.xml-->
        android:layout_margin="10dp"
        android:textOn=""
        android:textOff=""
        android:focusable="false"
        android:focusableInTouchMode="false"
        android:layout_centerVertical="true"/>

ドローアブルフォルダにcheck.xmlを作成します

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- When selected, use grey -->
    <item android:drawable="@drawable/selected_image"
          android:state_checked="true" />
    <!-- When not selected, use white-->
    <item android:drawable="@drawable/unselected_image"
        android:state_checked="false"/>

 </selector>
于 2012-07-16T07:10:12.930 に答える
48

AkashGのソリューションは私にはうまくいきません。check.xmlをバックグラウンドに設定すると、垂直方向に階層化されます。この問題を解決するには、check.xmlを「android:button」プロパティに設定する必要があります。

<ToggleButton 
    android:id="@+id/toggle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:button="@drawable/check"   //check.xml
    android:background="@null"/>

check.xml:

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- When selected, use grey -->
    <item android:drawable="@drawable/selected_image"
          android:state_checked="true" />
    <!-- When not selected, use white-->
    <item android:drawable="@drawable/unselected_image"
          android:state_checked="false"/>
    </selector>
于 2013-07-31T03:16:32.143 に答える
2

あなたはこのようなことを試すことができます。ここで画像ボタンをクリックすると、画像ビューが切り替わります。

holder.imgitem.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            if(!onclick){
            mSparseBooleanArray.put((Integer) view.getTag(), true);
            holder.imgoverlay.setImageResource(R.drawable.ipad_768x1024_editmode_delete_overlay_com);
            onclick=true;}
            else if(onclick)
            {
                 mSparseBooleanArray.put((Integer) view.getTag(), false);
                  holder.imgoverlay.setImageResource(R.drawable.ipad_768x1024_editmode_selection_com);

            onclick=false;
            }
        }
    });
于 2014-07-24T10:34:20.797 に答える