坑人的視圖動畫

以下是一個用視圖動畫實現(xiàn)先平移后縮放的動畫的xml代碼

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:fillAfter="true">
    <translate
        android:duration="1500"
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="300"
        android:toYDelta="300" />

    <scale
        android:duration="1500"
        android:startOffset="1500"
        android:fromXScale="1"
        android:fromYScale="1"
        android:toXScale="2"
        android:toYScale="2"
        android:pivotY="50%"
        android:pivotX="50%"/>
  </set>

期望的執(zhí)行結果是先平移后縮放??墒前l(fā)現(xiàn)在縮放的時候還是會發(fā)生移動,這是怎么回事呢?實驗了很多次,都是這樣。然后我把第二個動畫改成了旋轉動畫,發(fā)現(xiàn)旋轉的中心點依然在執(zhí)行該動畫的View的最原始的位置?;腥淮笪颍繉?,視圖動畫并沒有真正改變View的真實位置(牢記)。

因為View真實的位置并沒有改變,所以雖然設置了android:pivotY="50%"android:pivotX="50%",但是此時的縮放中心并不是移動之后所看到的View的中心,而是在視圖原來位置的中心。也就是說,此時的縮放中心在你所看到的View的外面。

那么對于縮放中心不處于View上面的時候,它是怎么縮放的呢?

經(jīng)過我的實驗發(fā)現(xiàn):假如該View離縮放中心的距離是s,縮放倍數(shù)為n,那么它縮放之后,它距離縮放中心的距離將變成s*n。

解決辦法:目前我還沒有想到直接用視圖動畫的解決辦法,只能用屬性動畫了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,913評論 25 709
  • 內容抽屜菜單ListViewWebViewSwitchButton按鈕點贊按鈕進度條TabLayout圖標下拉刷新...
    皇小弟閱讀 47,144評論 22 665
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,171評論 4 61
  • 1 背景 不能只分析源碼呀,分析的同時也要整理歸納基礎知識,剛好有人微博私信讓全面說說Android的動畫,所以今...
    未聞椛洺閱讀 2,844評論 0 10
  • 帝殿雄宏,金鑾壁瓦,紫云貫空天南。 似染紅磚,景山林外煙連。 遙看螓首蛾眉展,夜落時,神跡天壇。 古街清,環(huán)繞凝情...
    沙柳胡楊閱讀 273評論 0 4

友情鏈接更多精彩內容