2015-04-04 51 views
2

我目前做的動畫從材料規範設計的,現在我想啓用做起源動畫的一個點,這是在這裏顯示:原點動畫的android

Sample Animation Link

我該怎麼辦棒棒糖的動畫?有沒有辦法在前棒棒糖設備上做到這一點?

+0

您是否試圖將pivot x(0)和pivot y(viewHeight)移動到該點,然後將適當的插補器應用到縮放動畫中,如Overshoot?你有沒有想過動畫視圖RectF? – 2015-04-04 23:35:01

+0

@NikolaDespotoski我打算在片段中做到這一點,我嘗試了一個視圖上的常規比例動畫,但它總是從左上角開始右下角。 – 2015-04-04 23:40:45

+0

如果使用setPivotX和setPivotY更改pivot x和y將具有不同的行爲。 – 2015-04-04 23:42:27

回答

1

我已經實現了這一點Origin創建一個基於XML的方法並將其應用到您的自定義主題。

創建動畫/ anim_in.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <scale 
     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
     android:fromXScale="0.0" 
     android:toXScale="1.0" 
     android:fromYScale="0.0" 
     android:toYScale="1.0" 
     android:fillAfter="false" 
     android:startOffset="200" 
     android:duration="200" 
     android:pivotX = "100%" 
     android:pivotY = "100%" 
     /> 
    <translate 
     android:fromYDelta="50%" 
     android:toYDelta="0" 
     android:startOffset="200" 
     android:duration="200" 
     /> 
</set> 

然後創建動畫/ anim_out.xml

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <scale 
     android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
     android:fromXScale="1.0" 
     android:toXScale="0.0" 
     android:fromYScale="1.0" 
     android:toYScale="0.0" 
     android:fillAfter="false" 
     android:duration="200" 
     android:pivotX = "100%" 
     android:pivotY = "100%" 
     /> 
    <translate 
     android:fromYDelta="0" 
     android:toYDelta="50%" 
     android:duration="200" 
     /> 
</set> 

這個動畫的起源,從彈出的右下角窗口或對話框片段屏幕。修改pivotXpivotY改變原點

的位置在style.xml

<style name="InOut.Window" parent="@android:style/Animation.Activity"> 
     <item name="android:windowEnterAnimation">@anim/anim_in</item> 
     <item name="android:windowExitAnimation">@anim/anim_out</item> 
    </style> 

定義這個窗口動畫這個動畫最後應用到你所創建的自定義主題的所有窗口。

<style ....> 
... 
<item name="android:windowAnimationStyle">@style/InOut.Window</item> 
</style> 
+0

但是點擊後在按鈕下繪製的圓的怎麼樣? – danpetruk 2015-07-30 11:33:02

+0

你能詳細說說嗎? – zIronManBox 2015-07-30 16:12:52