单击后临时交换按钮背景中的图像

时间:2013-08-02 12:55:00

标签: java android android-layout button background

我为我的按钮背景准备了两个图形。我有一个放在xml文件中的“android:background”,我不知道如何在点击后将这个图像更改为另一个图像一段时间。

我尝试使用OnHoverListener和OnClickListener执行此操作,但它不起作用

Button.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            Button.setBackground(getResources().getDrawable(
                    R.drawable.img_hovered));
Button.setBackground(getResources().getDrawable(R.drawable.img));
        }
    });

2 个答案:

答案 0 :(得分:1)

看看以下是否符合您的要求。该代码假定R.drawable.img是原始背景。单击Button后,背景将更改为R.drawable.img_hovered 0.5秒。然后它又恢复为R.drawable.img

Button.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {

        Button.setBackground(getResources().getDrawable(
                              R.drawable.img_hovered));

        new Handler().postDelayed(new Runnable() {

            public void run() {

                Button.setBackground(getResources().getDrawable(R.drawable.img));

                // Button Click Code Here
            }

        }, 500L);    // 0.5 Seconds

    }

});

答案 1 :(得分:1)

如果你想让它成为可点击按钮,那么在drawable文件夹中创建一个选择器xml并复制到代码下面。

让其名称为app_click.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android" >

 <item android:drawable="@drawable/yourimage_pressed" android:state_pressed="true"/>
 <item android:drawable="@drawable/yourimage_unpressed"/>
 </selector>

然后将此选择器用于按钮Selector

像这样

<Button

        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:background="@drawable/app_click" />