寫了個屬性動畫
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ObjectAnimator.ofFloat(imageView,"translationY",-100).start();
}
});
發現這個按鈕無論點多少次都是只執行了第一次,why?
加log
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.i("屬性動畫","translationY"+imageView.getTranslationY());
ObjectAnimator.ofFloat(imageView,"translationY",-100).start();
}
});
打印如下
屬性動畫: translationY0.0 //第一次點擊
屬性動畫: translationY-100.0 // 第二次點擊
屬性動畫: translationY-100.0 //第三四五...
說明屬性動畫執行的時候是更改了對象屬性的,更改之前和更改之后的屬性如果都相同,那等同于沒改,所以要想每次讓對象執行一次,就要實時更新對象的屬性值,如下:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ObjectAnimator.ofFloat(imageView,"translationY",imageView.getTranslationY()-100).start();
}
});