Androidアプリケーションを作成していますが、単純なSVGアニメーションを再生したいと思います。 AndroidがSVGサポートを提供していないことは承知しています。ここで私のオプションは何ですか?
ダウンロードしたXMLファイルをプロジェクトに追加して、その外観を確認します。回転およびパスモーフアニメーション用に準備されたVectorDrawableの例を次に示します。
_<vector xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:height="64dp"
Android:width="64dp"
Android:viewportHeight="600"
Android:viewportWidth="600" >
<group
Android:name="rotationGroup"
Android:pivotX="300.0"
Android:pivotY="300.0"
Android:rotation="45.0" >
<path
Android:name="v"
Android:fillColor="#000000"
Android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
</group>
_
3次に、作成したVectorDrawableでrotationGroupとパスモーフを参照するAnimatedVectorDrawableを作成します
_<?xml version="1.0" encoding="UTF-8"?>
<animated-vector xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:drawable="@drawable/vectordrawable">
<target Android:name="rotationGroup" Android:animation="@anim/rotation" />
<target Android:name="v" Android:animation="@anim/path_morph" />
</animated-vector>
_
4 AnimatedVectorDrawableの2つのアニメーターを作成します。
_<objectAnimator
Android:duration="6000"
Android:propertyName="rotation"
Android:valueFrom="0"
Android:valueTo="360" />
_
および:
_<set xmlns:Android="http://schemas.Android.com/apk/res/Android">
<objectAnimator
Android:duration="3000"
Android:propertyName="pathData"
Android:valueFrom="M300,70 l 0,-70 70,70 0,0 -70,70z"
Android:valueTo="M300,70 l 0,-70 70,0 0,140 -70,0 z"
Android:valueType="pathType"/>
</set>
_
(このすべてを1つのファイルで定義することも可能です。 docs here を参照してください)
アニメーションを開始する1つの方法は、ビューからドロアブルを取得してstart()
を実行することです。
Android Lollipop(APIレベル21)から開始すると、 AnimatedVectorDrawable を使用して実装できます。
また、ベクトルdrawable shapeshifter のアニメーション化に役立つツールと、ツールshapeshifterの作成者からのブログ投稿 アイコンアニメーション手法の紹介 があります。
VectorDrawableを使用します。ターゲットがLollipopの下にある場合は、 サポートライブラリ を使用します。