2012-03-30 40 views
1

我有这个按钮xml,当它被按下时,被按下的图像(b)会在返回到正常按钮之前显示更长的时间。Button Pressed Animation is longer

这里是我的xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/a" /> 
<item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/b" /> 
<item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/b" /> 
<item android:drawable="@drawable/a" /> 

任何人有这样的想法?

对于修复。我用这个。

closeButton.setOnTouchListener(new View.OnTouchListener() { 

     public boolean onTouch(final View v, MotionEvent event) { 
      switch(event.getAction()) 
      { 
      case MotionEvent.ACTION_DOWN: 
       v.setPressed(true); 
       return true; 
      case MotionEvent.ACTION_UP: 
       v.setPressed(false); 
       try { 
      Thread.sleep(150); 
     } catch (Exception e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 
     return true; 
     } 
      return false; 

     } 
}); 
+0

你的问题是什么?你想让动画更长? – 2012-03-30 05:02:38

+0

很差的解释。通过看到选中的所有人都可以理解的是,有三组图像用于按钮的三种不同状态。现在动画出现在哪里,你究竟用“更长”来表达,没有信息? – 2012-03-30 05:06:04

回答

1

尝试这样的..

Handler handler=new Handler(); 
mybutton.setOnTouchListener(new OnTouchListener() { 

     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      v.setPressed(true); 
      handler.postDelayed(new Runnable() { 
@Override 
public void run() { 
v.setPressed(false); 
} 
}, 2000);<-- you can set for how much time the button should be in pressed state..2 seco9nds in this case 
      return true; 
     } 
    }); 
+0

但是,该解决方案仅适用于快速按下按钮。如果长按按钮怎么样? – antonoVodka 2012-03-30 05:45:52

+0

还有onlongclick监听器..你也可以覆盖... – 5hssba 2012-03-30 05:47:39

+0

我编辑了我的问题,并添加了解决方案,我的问题。谢谢。 – antonoVodka 2012-03-30 06:09:54

3

可以使用exitFadeDuration

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
     android:exitFadeDuration="@android:integer/config_mediumAnimTime"> 
    <item android:state_activated="true" android:drawable="@android:drawable/list_selector_background_selected" /> 
    <item android:drawable="@color/transparent" /> 
</selector> 

动画状态的变化这将淡出你的选择输入/输出状态的变化,你可以改变的时机到别的东西。

+0

greeat ....很好...谢谢你。保存了很多我的时间 – Sayka 2015-12-21 12:31:18