屬性動畫只能運行一次嗎,非也

寫了個屬性動畫

    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();

        }
    });
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,973評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,455評論 25 708
  • 工廠模式類似于現實生活中的工廠可以產生大量相似的商品,去做同樣的事情,實現同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 7,842評論 2 17
  • 【第二章】 “最近的新生有點囂張啊…”“就是啊,尤其是那個莫宇谷,憑什么剛來不久就成了學生會的人??!”高二樓里悉悉...
    藍瓜2045閱讀 433評論 0 0
  • 以前總認為愛情很美好,會很憧憬??墒钱斏硖幤渲校袝r又會覺得原來如此。 四年前和他相識,其實當時也沒有想...
    您H閱讀 273評論 0 0