2017-03-01 10 views
0

アニメーションの回転方法を理解しようとしています。回転アニメーションセットでpivotX/Yがどのように機能するか

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="8000" 
> 

    <rotate android:fromDegrees="0" 
      android:toDegrees="30" 
      android:pivotX="100%" 
      android:pivotY="100%" 
      /> 

    <rotate 
      android:toDegrees="100" 
      android:pivotX="100%" 
      android:pivotY="30%" 
    /> 
</set> 

結果::矢がどこにある
enter image description here

は、今、私が中心にこれを使用して再び回転しようとしていますが、次のように私は、ビューを回転以下で

<set xmlns:android="http://schemas.android.com/apk/res/android" 
     android:duration="8000"> 
    <rotate android:fromDegrees="0" 
       android:toDegrees="30" 
       android:pivotX="100%" 
       android:pivotY="100%" 
       /> 

     <rotate 
       android:toDegrees="100" 
       android:pivotX="100%" 
       android:pivotY="30%" 
     /> 

    <rotate android:pivotY="-30%" 
      android:pivotX="40%" 
      android:toDegrees="100"/>  
</set>  

すなわち、次のよう
は、だから、私はアニメーションセットを変更しました私は、画面を回転ポイントを探していることは、yの一番左の値より約30%少ない、xは、xの一番左の値よりも約40%以上であるので、これは私には正しいようだ

<rotate android:pivotY="-30%" 
       android:pivotX="40%" 
       android:toDegrees="100"/> 

を追加しました。
しかし、アニメーションが実行されるとき、期待通りに動作しません。正直言って、私は実際の回転点と、全体のビューが左に歪んでいるという手掛かりはありません。
結果:私はここで何を

enter image description here

を誤解していますか?

答えて

1

ピボットは、(ピボットを写真に置いたように)回転する周りの点です。あなたの 'from'と 'to'ピボットが同じでない場合、あなたは設定点を中心に回転しているだけではなく、ピンの位置を変更して各ステップごとに少し回転させて(スキュー)。

ちょうどあなたが知らない場合:Android coordinatesスタート左上が左下ではありません。

私はあなたがそのセットに必要なすべてが最大値、画面のすなわち右端さX([100%、30%]でそれをピンの周りに130度回転します

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:duration="8000"> 
    <rotate android:fromDegrees="0" 
      android:toDegrees="130" 
      android:pivotX="100%" 
      android:pivotY="30%" /> 
    <!-- I believe this, below will the the correct slide you need --> 
    <translate android:fromXDelta="0" 
       android:toXDelta="-100%" /> 
</set>  

だと思います、yは画面下の30%です)、同時に開始位置の右側に(表示幅の)100%になるまでスライドします。

+0

私がやってみたいのは、ビューを回転させることです一連の連続的な回転を伴ってディスプレイから外れる。私がhttps://developer.android.com/guide/topics/resources/animation-resource.html#Viewから理解したことは、ピボットXとピボットYは異なる値を持つことができるということです。それ以外の場合はどのようにして(X、Y)座標を設定できますか正確なpixesの位置を知らなくても、中心以外のものはありますか?私が思ったのは、写真の中で緑色の矢印を得るためには、同時にピボットXとピボットYを「移動」させなければならないということでした。ところであなたのスニペットは私が必要とするものをしません。それは実際には左にもゆがんでいる – Jim

+0

私はOPも更新しました – Jim

+0

スキューによって、それは漂うことを意味します。私は、X、Yがビューのほとんどの角に残っているという印象を受けました。私がしようとしているのは、あなたが正しい画面の右に回転してスライドさせることです。私は「カードを投げる」効果を幾分模倣しようとしています – Jim

関連する問題