24.5Vector動態(tài)圖的使用
動態(tài)的Vector需要通過animated-vector標(biāo)簽來進(jìn)行實現(xiàn)访锻,它就像一個粘合劑渣淤,將控件與Vector圖像粘合在了一起恭取,一個基礎(chǔ)的animated-vector代碼如下所示:
Android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/vector_drawable">
android:name="star"
android:animation="@animator/star_anim" />
目標(biāo)圖像是drawable//vector_drawable,name屬性节吮,就是在靜態(tài)Vector圖像中g(shù)roup或者path標(biāo)簽的name屬性残邀。
目標(biāo)圖像:
android:width="500px"
android:height="500px"
android:viewportHeight="500"
android:viewportWidth="500">
android:name="star_group"
android:scaleX="5.0"
android:scaleY="5.0">
android:name="star"
android:pathData="M50.0,90.0 L 82.9193546357,27.2774101308 L 12.5993502926,35.8158045183 L59.5726265715,88.837672697 L 76.5249063296,20.0595700732 L10.2916450361,45.1785327898 L 68.5889268818,85.4182410261 L68.5889268818,14.5817589739 L 10.2916450361,54.8214672102 L76.5249063296,79.9404299268 L 59.5726265715,11.162327303 L12.5993502926,64.1841954817 L 82.9193546357,72.7225898692 L 50.0,10.0 L17.0806453643,72.7225898692 L 87.4006497074,64.1841954817 L40.4273734285,11.162327303 L 23.4750936704,79.9404299268 L89.7083549639,54.8214672102 L 31.4110731182,14.5817589739 L31.4110731182,85.4182410261 L 89.7083549639,45.1785327898 L23.4750936704,20.0595700732 L 40.4273734285,88.837672697 L87.4006497074,35.8158045183 L 17.0806453643,27.2774101308 L 50.0,90.0Z"
android:strokeColor="@color/colorAccent"
android:strokeWidth="2" />
這里的Vector圖像比之前的要多了一個group標(biāo)簽。group標(biāo)簽的作用有兩個:
對Path進(jìn)行分組萨赁,由于后面需要針對Path進(jìn)行動畫弊琴,所以可以讓具有同樣動畫效果的Path在同一個Group中
拓展動畫效果,單個的path標(biāo)簽是沒有translateX和translateY屬性的杖爽,因此無法使用屬性動畫來控制pathtranslateY敲董,而group標(biāo)簽是有的,所以我們需要先將相關(guān)的path標(biāo)簽元素包裹在一個個的group標(biāo)簽中慰安。
動畫效果star_anim.xml腋寨,就是基礎(chǔ)的屬性動畫:
android:duration="5000"
android:propertyName="trimPathStart"
android:repeatCount="infinite"
android:repeatMode="restart"
android:valueFrom="1"
android:valueTo="0"/>
android:duration="5000"
android:propertyName="strokeColor"
android:repeatCount="infinite"
android:repeatMode="restart"
android:valueFrom="@color/colorAccent"
android:valueTo="@color/colorPrimaryDark" />
在代碼中使用:
ImageViewimageView = (ImageView) findViewById(R.id.image_view);
Drawable drawable = imageView.getDrawable();
//AnimatedVectorDrawableCompat實現(xiàn)了Animatable接口
if (drawable instanceof Animatable){
((Animatable) drawable).start();
}
參考;http://blog.csdn.net/eclipsexys/article/details/51838119