2013-08-21 39 views
1

所以即时尝试让我的按钮改变它的形象,当我按下它改变正确的时候,当我在按钮上提起时ACTION_UP确实被调用...但是,当ACTION_DOWN被调用时,我移开我的手指(外面)按钮并抬起,ACTION_UP仍然被调用。它应该设置图像恢复正常,别无其他。ON_CANCEL永远不会被调用

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; 

      } 

     }); 

回答

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" 
    
+0

然后再打回我的onClick方法? –

+1

我不明白你的问题,但是,是的,你可以在'

+0

正确...我使用onTouch的原因是因为我无法实现您的XML所要实现的功能,尚未测试,我已将setOnTouchListener更换回setOnClickListener。我会接受一次测试和工作。谢谢 –

相关问题