試試這個代碼,它的使用ViewPropertyAnimator:
View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
view.animate().alpha(0.2f).setDuration(1000);
}
};
它總是好的,設定的期限,所以動畫知道它應該運行多久。
編輯:您可能想,如果你使用的是onTouchListener,類似將其附加到一個MotionEvent:
View.OnTouchListener mDelayHideTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if(motionEvent == MotionEvent.ACTION_DOWN)
view.animate().alpha(0.2f).setDuration(1000);
}
};
編輯2:
如果你想使用一個按鈕它最好使用OnClickListener代替onTouchListener的,如果你要附加的圖片,你必須啓動它(例如在ImageView的):
Button button = (Button) findViewById(R.id.your_button);
ImageView imageView = (ImageView) findViewById(R.id.imgTest);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
imageView.animate().alpha(0.2f).setDuration(1000);
}
};
'onTouch()'捕獲許多不同的觸摸事件。除非你知道自己在做什麼,否則千萬不要做這樣的事情,並將觸摸處理完全放在一邊。改用「OnClickListener」。 –