单击后,将图像替换为按钮中的另一个图像

时间:2015-03-27 07:00:54

标签: android button

我使用了一个按钮作为菜单。我在这个按钮里面使用了向下箭头和向上箭头图像。默认情况下,当我单击我希望此向下箭头图像变为向上箭头的按钮时,会显示向下箭头图像,并且它应该保持启用状态。

这是我在xml文件中的按钮声明

    <Button
        android:id="@+id/patientUtilityButton"
        android:layout_width="300dp"
        android:layout_height="50dp"
        android:text="Patient Utilities"
        android:gravity="center"
        android:paddingRight="10dp"
        android:drawableRight="@drawable/patient_utility_selector"
        android:textColor="@android:color/white"
        android:textSize="20sp"
        android:background="@drawable/round_corner"
        android:layout_alignParentBottom="true"
        android:layout_alignLeft="@+id/searchButton"
        android:layout_alignStart="@+id/searchButton"
        android:layout_below="@+id/searchButton"
        android:layout_marginTop="15dp"/>

这是我点击按钮后替换图像的可绘制文件

<item android:state_enabled="false"
    android:drawable="@drawable/arrow_down_float" />

<item android:state_pressed="true"
    android:state_enabled="true"
    android:drawable="@drawable/arrow_up_float" />

它正在替换图像,但在按下相同的向下箭头图像后显示。请有人帮忙。

2 个答案:

答案 0 :(得分:1)

您应该使用切换按钮,而不是使用按钮。 示例代码如下所示。

<ToggleButton 
        android:id="@+id/patientUtilityButton"
        android:layout_width="300dp"
        android:layout_height="50dp"
        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">

    <item android:drawable="@drawable/down_image"
          android:state_checked="true" />

    <item android:drawable="@drawable/up_image"
        android:state_checked="false"/>

 </selector>

答案 1 :(得分:0)

非常简单。 你可以使用ImageButton或Button。

在你的xml文件中设置回到imageButton,如下面的

 android:background="@drawable/button_down"

然后单击该图像按钮,如

button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            button.setBackgroundResource(R.drawable.button_up);
        }
    });
希望这会对你有所帮助。