1

所以我试图让我的按钮改变它的图像,当我按下它时它会正确改变,当我在按钮上抬起时 ACTION_UP 确实会被调用......但是,当 ACTION_DOWN 被调用并且我将手指移开(外面)按钮并抬起,ACTION_UP 仍然被调用。它应该将图像设置回正常并且什么都不做。

twitterBtn.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent touchEvent) {
                switch(touchEvent.getAction())
                {
                    case MotionEvent.ACTION_DOWN:
                        twitterBtn.setBackgroundResource(R.drawable.logintwittertouched);
                        return true;
                    case MotionEvent.ACTION_CANCEL:
                        twitterBtn.setBackgroundResource(R.drawable.logintwitter);
                        return true;
                    case MotionEvent.ACTION_UP:
                        twitterBtn.setBackgroundResource(R.drawable.logintwitter);
                        try {
                            adapter.authorize(MainActivity.this, Provider.TWITTER);
                            dialog = ProgressDialog.show(MainActivity.this, "", "Connecting to Twitter", true);
                        } catch (Exception e) {
                            Log.v(getString(R.string.clickrerr), "" + e.toString());
                        }
                    return true;
                }
                return false;

            }

        });
4

1 回答 1

1

在 XML 中执行:

  1. 创建res/drawable/twitter_button.xml

    <item android:drawable="@drawable/twitter_button_on" android:state_pressed="true"/>
    <item android:drawable="@drawable/twitter_button_off"/>
    

    它使用 2 个图像:twitter_button_on.pngtwitter_button_off.png,您也应该将它们放在drawable文件夹中。

  2. 在您的布局中,将其添加到您的<Button>

    android:background="@drawable/twitter_button"
    
于 2013-08-21T19:28:05.423 回答