1

我有一个Button名字Start实际上Start是一个图像,我把它放在我的按钮中作为背景android:background="@drawable/btn_stop我想要做的是通过按下Start 按钮它应该用我能够在 Java 代码中使用它来替换Start图像,但我想通过使用我已经使用过这段代码来做到这一点StopbtnStartStop.setBackgroundResource(R.drawable.btn_stop);XMLselector

<Button
        android:id="@+id/button_start_stop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dip"
        android:layout_marginTop="10dip"
        android:background="@drawable/btn_selector"/>

这里btn_selectorXML我在drawable包含 btn_selector.xml的文件夹中创建的文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/btn_stop"
          android:state_pressed="true" />
    <item android:drawable="@drawable/btn_start"/>
</selector>

但它只是为 ex 创建一个悬停效果:它只Stop在我按下Start一秒钟然后在它显示之后显示Start

注意:我不想使用切换按钮

4

2 回答 2

1

你的选择器应该是这样的,

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true" android:drawable="@drawable/switch_on" />
        <item android:state_selected="true" android:drawable="@drawable/switch_on" />
        <item android:drawable="@drawable/switch_off" /> <!-- default -->
</selector>

你的听众应该是这样的,

 button.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub

                    if(button.isSelected())
                     {               
                        button.setSelected(false);
                     }
                    else
                     {
                        button.setSelected(true);
                     }

                }
            });
于 2013-05-24T06:48:01.473 回答
0

在 android studio 2.2.3 的最新版本中,这条线有效:

 DYNAMIC_ELEMENT.setBackground( getDrawable( R.drawable.circle ) );


compileSdkVersion 25
buildToolsVersion "25.0.3"
minSdkVersion 21
targetSdkVersion 25

还有旧版本:

 DYNAMIC_ELEMENT.setImageDrawable(getResources().getDrawable(R.drawable.image_bg));
于 2017-09-27T12:48:43.567 回答