iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 22
2
Software Development

Android animation 30天上手系列 第 22

Day22 VectorDrawable Animation TrimPath

  • 分享至 

  • xImage
  •  

trimPathEnd/trimPathStart 軌跡動畫

VectorDrawable 加上trimPathStart ,可以做到向下圖這樣,線由起點(0%)縮短至終點(100%)

demo

步驟1:新增藍色的線
drawable/line.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="24dp"
    android:viewportHeight="24.0"
    android:viewportWidth="24.0"
    android:width="24dp">
    <path
        android:name="line"
        android:strokeColor="#0c6bf9"
        android:strokeWidth="1.5"
        android:pathData="M0,20 L24,20"/>
</vector>

步驟2:加上動畫 trimPathStart
線由起點(0%)縮短至終點(100%)

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

animated-vector 為drawable/line指定動畫animator/anim_trim_path_end_0_to_1

<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/line">
    <target
        android:name="line"
        android:animation="@animator/anim_trim_path_end_0_to_1" />
</animated-vector>

trimPathStart、trimPathEnd的組合如下:

trimPathStart。valueFrom:0, valueTo:1
線由起點(0%)縮短至終點(100%)

path_start_0_to_1

trimPathStart。valueFrom:1, valueTo:0
線由終點增長至起點

trimPathStart_1_to_0

trimPathEnd。valueFrom:0,valueTo:1
線由起點增長至終點

trimPathEnd_0_to_1

trimPathEnd。valueFrom:1,valueTo:0
線由終點縮短至起點

trimPathEnd_1_to_0

完整程式:https://github.com/evanchen76/VectorAnimationTrimPath


上一篇
Day21 VectorDrawable Animation Morphs
下一篇
Day23 VectorDrawable Animation 範例:play-pause
系列文
Android animation 30天上手30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言