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



我已经准备了两个图形作为我的按钮的背景。我有一个放在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));
        }
    });

如果你想让它成为可点击的按钮,那么在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>

然后将此选择器用于您的按钮CCD_ 1。

像这个

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/app_click" />

查看以下内容是否符合您的要求。该代码假定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
    }
});

最新更新