0

我为按钮的背景准备了两个图形。我在 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));
        }
    });
4

2 回答 2

1

看看以下是否符合您的要求。代码假定这R.drawable.img是原始背景。单击时Button,背景变为R.drawable.img_hovered0.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

    }

});
于 2013-08-02T13:03:44.317 回答
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" />
于 2013-08-02T13:06:03.477 回答