web-dev-qa-db-ja.com

異なる状態の2つの画像を使用するトグルボタン

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

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

そして、トグルボタンをクリックしても、別の画像をオン状態に設定することはできません:

97
MBMJ

これを行う:

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

drawableフォルダーに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>
215
AkashG

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>
46
MistaGreen

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

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;
            }
        }
    });
2
Srishti Roy