SVG在Android中的使用

2018-08-31  本文已影响7人  lixinxin

svg

M=moveto(M X,Y): 将画笔移动到指定的坐标位置

L=lineto(L X,Y): 画直线到指定的坐标位置

H=horizontal lineto(H X): 画水平线到指定的X坐标位置

V=vertical lineto(V Y): 画垂直线到指定的Y坐标位置

A=elliptical Arc(A RX,RY,XROTATION,FLAG1,FLAG2,X,Y): 弧线

使用

<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="100dp"
android:height="100dp"
android:tint="#02A426"
android:viewportHeight="100"
android:viewportWidth="100">
<path
    android:name="lee"
    android:pathData="M0,0,V100,H40,V50,H60,V100,H100V0,z"
    android:strokeColor="#FF0000"
    android:strokeWidth="5" />
</vector>

动画

<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/ic_title_black_24dp">

    <target
        android:name="lee"
        android:animation="@animator/anim_bar_fill" />
</animated-vector>

anim_bar_fill.xml

<objectAnimator
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="1000"
    android:propertyName="trimPathEnd"
    android:repeatCount="0"
    android:valueFrom="0"
    android:valueTo="1"
    android:valueType="floatType"/>

//android 5.0以上可以使用
 if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            final AnimatedVectorDrawable anim1 = (AnimatedVectorDrawable) getResources().getDrawable(R.drawable.anim);
            final ImageView logo = ((ImageView) findViewById(R.id.logo));
            logo.setImageDrawable(anim1);
            anim1.start();
        }

上一篇下一篇

猜你喜欢

热点阅读