2013-12-20 43 views
2

我有在res動畫下面的定義/動畫/ grow.xml:如何在XML中定義的ObjectAnimator上設置pivotX或pivotY?

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:ordering="sequentially"> 
    <set>  
     <objectAnimator 
      android:propertyName="scaleX" 
      android:duration="150" 
      android:valueFrom="1.0" 
      android:valueTo="1.5" 
      android:valueType="floatType" /> 
     <objectAnimator 
      android:propertyName="scaleY" 
      android:duration="150" 
      android:valueFrom="1.0" 
      android:valueTo="1.5" 
      android:valueType="floatType" /> 
    </set> 
</set> 

我想是的pivotX和pivotY要在對象的中心,而不是左上角角。我知道我可以通過代碼來實現這一點,但我寧願不這樣做。相反,我想在XML文件中指定它。我想過這樣做:

<objectAnimator 
    android:propertyName="pivotX" 
    android:valueTo="50%" /> 
<objectAnimator 
    android:propertyName="pivotY" 
    android:valueTo="50%" /> 

但是,這似乎是它會嘗試和動畫該財產爲好,這是不是我想要的。相反,我希望它設置樞軸,然後執行動畫。我可以用XML來做到這一點嗎?如果是這樣,怎麼辦?

+0

嗯......也許,因爲這個問題已經持續了這麼長時間,這是不可能的? – jwir3

回答

-1

我對片段事務有類似的問題。 關於在佈局文件的android:transformPivotX中設置它的煩人的事情是,它需要像素,而我想要的百分比。

雖然不漂亮,你可以在ObjectAnimator,例如添加值:

<?xml version="1.0" encoding="utf-8"?> 
    <set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <objectAnimator 
     android:duration="500" 
     android:propertyName="scaleY" 
     android:valueFrom="0.0" 
     android:valueTo="1.0" 
     android:valueType="floatType"/> 

    <objectAnimator 
     android:duration="500" 
     android:propertyName="pivotY" 
     android:valueFrom="1.0" 
     android:valueTo="1.0" 
     android:valueType="floatType"/> 

</set> 
0

你必須定義它(機器人:transformPivotX和android:transformPivotY)對你的看法(其視圖的屬性現在,不一個ObjectAnimator的屬性)。
兩者都不是%但是sp,dp或px ...

如果使用VectorDrawable,則它是組的屬性,具體取決於viewPort座標。

<?xml version="1.0" encoding="utf-8"?> 
<vector xmlns:android="http://schemas.android.com/apk/res/android" 
     android:width="24dp" 
     android:height="24dp" 
     android:viewportHeight="24.0" 
     android:viewportWidth="24.0" 
    > 
    <group 
     android:name="core" 
     android:pivotX="12.0" 
     android:pivotY="12.0"> 
     <path 
      android:name="corepath" 
      android:fillColor="#FF000000" 
      android:pathData="@string/init_path_coreic_check_box_outline_blank_black_24dp" 
      /> 
    </group> 
</vector> 

或者,您可以繼續使用TweenAnimation

相關問題