Android開罐頭———VectorDrawable實現(xiàn)軌跡動畫

簡單利用vectorDrawable的一個屬性泉褐,就能簡單打造出炫酷的路徑path軌跡顯示效果

效果圖:


效果圖預覽.gif

一唾戚、搜索框vectorDrawable

代碼如下:

  • res/drawable/searchbar.xml
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="150dp"
    android:height="24dp"
    android:viewportHeight="24"
    android:viewportWidth="150">

    <path
        android:name="search"
        android:pathData="M141,17 A9,9 0 1,1 142,16 L149,23"
        android:strokeAlpha="0.8"
        android:strokeColor="#0092ff"
        android:strokeLineCap="round"
        android:strokeWidth="2"/>

    <path
        android:name="bar"
        android:pathData="M0,23 L149,23"
        android:strokeAlpha="0.8"
        android:strokeColor="#0092ff"
        android:strokeLineCap="square"
        android:strokeWidth="2"/>
</vector>

效果圖:

搜索框Vector

二、實現(xiàn)屬性動畫

給放大鏡search設置一個從無到有畫出來的軌跡屬性動畫:

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

其中最重要的參數(shù)就是trimPathEnd標簽了,同樣還有trimPathStart

  • trimPathEnd——決定了路徑可見部分哪里結束
  • trimPathStart——決定了路徑可見部分哪里開始

如下圖所示,trimPathStart為0.27時表示從27%時候炉擅,路徑開始就可見,而trimPathEnd為0.91時候表示阳惹,路徑在91%之后就不可見了谍失。

trim路徑演示圖

所以,我們想用trimPathEnd標簽打造從無到有的動畫莹汤,value值一開始就是0快鱼,表示路徑到0%結束,后面都不可見体啰,value最后值為1攒巍,表示最后路徑到100%才結束。

同理荒勇,我們想要那個vector里面的bar來一個從有到無的效果柒莉,這次我們使用trimPathStart屬性來變:

  • res/animator/anim_bar.xml:
<objectAnimator xmlns:androd="http://schemas.android.com/apk/res/android"
    androd:duration="1000"
    androd:propertyName="trimPathStart"
    androd:valueFrom="0"
    androd:valueTo="1"
    androd:valueType="floatType">
</objectAnimator>

一開始value為0,表示path從0開始沽翔,則表示bar全部顯示兢孝,最后value為1,表示path從100%初顯示仅偎,即不顯示跨蟹。


注:大神表示trimPathStart屬性使用上更優(yōu),所以我們還是最后把vector里的search的屬性動畫改成trimPathStart變化橘沥。

三窗轩、粘合劑animated-vector

這個就沒什么好講解的了:

  • res/drawable/searchbar_anim.xml:
<animated-vector
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/searchbar">

    <target
        android:animation="@animator/anim_search"
        android:name="search"/>

    <target
        android:animation="@animator/anim_bar"
        android:name="bar"/>

</animated-vector>

四、布局中添加vectorDrawable

  • res/layout/acitvity_main.xml:
<ImageView
            android:onClick="anim_vector"
            app:srcCompat="@drawable/searchbar_anim"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

在主代碼的點擊事件中開啟動畫:

  • MainActivity.java:
 //點擊事件座咆,開始動畫
    public void anim_vector(View view){
        //獲取圖標實例
        ImageView arrow = (ImageView) view;
       //判斷若是動畫則開始
        Drawable drawable = arrow.getDrawable();
        if(drawable instanceof Animatable){
            ((Animatable)drawable).start();
        }
    }

五痢艺、效果圖與總結

效果圖:


效果圖預覽.gif

其實本身還是使用動態(tài)vectorDrawable動畫,只是簡單利用了trim屬性介陶,就能打造出炫酷的軌跡效果~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末堤舒,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子哺呜,更是在濱河造成了極大的恐慌舌缤,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異国撵,居然都是意外死亡陵吸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門介牙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來走越,“玉大人,你說我怎么就攤上這事耻瑟。” “怎么了赏酥?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵喳整,是天一觀的道長。 經常有香客問我裸扶,道長框都,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任呵晨,我火速辦了婚禮魏保,結果婚禮上,老公的妹妹穿的比我還像新娘摸屠。我一直安慰自己谓罗,他們只是感情好,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布季二。 她就那樣靜靜地躺著檩咱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胯舷。 梳的紋絲不亂的頭發(fā)上刻蚯,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音桑嘶,去河邊找鬼炊汹。 笑死,一個胖子當著我的面吹牛逃顶,可吹牛的內容都是我干的讨便。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼口蝠,長吁一口氣:“原來是場噩夢啊……” “哼器钟!你這毒婦竟也來了?” 一聲冷哼從身側響起妙蔗,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤傲霸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體昙啄,經...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡穆役,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了梳凛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耿币。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖韧拒,靈堂內的尸體忽然破棺而出淹接,到底是詐尸還是另有隱情,我是刑警寧澤叛溢,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布塑悼,位于F島的核電站,受9級特大地震影響楷掉,放射性物質發(fā)生泄漏厢蒜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一烹植、第九天 我趴在偏房一處隱蔽的房頂上張望斑鸦。 院中可真熱鬧,春花似錦草雕、人聲如沸巷屿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽攒庵。三九已至,卻和暖如春败晴,著一層夾襖步出監(jiān)牢的瞬間浓冒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工尖坤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留稳懒,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓慢味,卻偏偏與公主長得像场梆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子纯路,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,095評論 25 707
  • 1 背景 不能只分析源碼呀或油,分析的同時也要整理歸納基礎知識,剛好有人微博私信讓全面說說Android的動畫驰唬,所以今...
    未聞椛洺閱讀 2,705評論 0 10
  • 1. 矢量圖SVG簡介 Android 5.0系統(tǒng)中引入了 VectorDrawable 來支持矢量圖(SVG)顶岸,...
    登高且賦閱讀 2,586評論 2 15
  • D~2 2017/4/24 給天父:親愛的天父謝謝你腔彰,你是一個滿有憐憫和慈愛的父親,你包容和忍耐我的無知辖佣,謝謝你開...
    Loveyoufor_31e8閱讀 117評論 0 0
  • 能量究竟是什么 馬燕發(fā)來個小視頻霹抛,下面一句話“你媽媽還會拼拼圖呢?”我知道她的好奇之處卷谈,意想不到的是一個已經63歲...
    林子2016閱讀 296評論 0 1