2012-03-30 39 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