2009-10-26 4 views
9

ScaleAnimationを使用して各クリックでビューを拡大したいと思います。私はアニメーションの効果をfillAfterで終了した後も管理しましたが、問題は今、アニメーションは常に状態0から開始されます(ビューはXMLで定義されているため) - クリックするとビューがリセットされ、元に戻りますそれは最初のアニメーションの直後の状態になります。Android ScaleAnimation

アニメーションは、XMLで定義されています:

<scale 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
    android:fromXScale="1" 
    android:toXScale="1.5" 
    android:fromYScale="1" 
    android:toYScale="1.5" 
    android:pivotX="50%" 
    android:pivotY="50%" 
    android:duration="1000" 
    android:fillAfter="true" 
/> 

答えて

26

私はXMLで定義されたアニメーションに頼らないことで問題を解決したのではなく、

anim = new ScaleAnimation(from, to, from, to, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); 

と/から、私はそれを拡張するために必要なたびに調整を行っています。パフォーマンスに関しては良いことだとは思えませんが、うまく動作します。

1

アニメーションが定義されてどのように正確に?

JavaコードでScaleAnimationを定義するときは、X/Yから設定できます(here参照)ので、XML属性でも同じことができると仮定します。

+0

元のサイズでも構いませんが、 – Anze

+0

私はまた、XML定義を含むように質問を修正しました:)。 – Anze

関連する問題