所以我试图让我的按钮改变它的图像,当我按下它时它正确地改变,当我按下按钮时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;
}
});
答案 0 :(得分:1)
以XML格式执行:
创建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.png
和twitter_button_off.png
,您也应将其放在drawable
文件夹中。
在您的布局中,将其添加到<Button>
:
android:background="@drawable/twitter_button"