Android 載入SVG動畫

2021-09-30 14:44:07 字數 2079 閱讀 2386

svg可以說是目前比較流行的格式,使用領域也十分廣泛,例如:web 前端頁面,android ios 等移動應用。都可以使用svg的格式。今天就要和大家談一談 svg 在android中的應用,svg的引入其實在我之前的文章裡已經有談到。其實 這個文章就是 android 載入svg 的原理。

(path 的高階用法)。還有一篇是談到用 path 寫的例子,仿滴滴打車倒計時效果,為什麼要談這個文章,因為這篇文章,告訴我們這個 path 高階用法 能 把複雜的效果用很簡單的方式實現,也很好理解,增大了我們view的繪製效率。

今天主要談的是path 的svg 的應用。其實很簡單,經過我們上兩篇文章的理解,看過的朋友應該知道這個原理。就是我們只要能獲得到乙個繪製的「路徑

所以主要問題就是如何獲取到「路徑」,我們找到原因了。那svg格式的是什麼?我們能從這裡面拿到什麼?能拿到 「路徑」嗎?答案是肯定的。

既然能拿到路徑,我們來看看 乙個 svg 格式的是什麼樣的 ,路徑在**?

我們能看到,喲喲喲!!!這不就是xml 嗎?裡面有個標籤叫 難道這就是我們需要的那個 path 路徑 嗎?對的 這就是我們需要的 path 路徑了。所以我們只要 讓美工 給我們乙個 具有 path 標籤的 svg 格式的,美工給你的svg 的格式 你一定要在 as 裡面開啟看看 ,因為 我之前就被坑了。美工給我乙個svg 怎麼載入結果就是沒有 動畫效果,折騰了很久 發現 他給的svg 格式的 裡面根本就沒有 path 路徑,這個美工在作圖的時候要注意 ,svg 生成的 方式。不能太隨意喲喲。 

我們看到裡面有很多 標籤 ,標籤裡面有很多屬性 如: 顏色 線寬 透明度 等。每乙個 path 標籤就代表我們乙個路徑,所以我們才能看到有很多的線 在 繪製。而且是同時繪製的。

那好了,到了這裡我們需要的 path 也有了,那問題來了。我們怎麼拿到這個 path ??

這是乙個問題。

但是github 上面已經有框架了:

我們用就行了。哈哈哈

拿來直接幹。

使用 步驟:

1.第一是把 jar 包匯入到lib 下面

2.我們需要的 svg 格式的

3.拿到兩個類:pathview 和 svgutils,

這兩類在 上面的 github 裡面有拿到我們的專案中就行了。

4.在xml 中載入我們的 svg

xmlns:

=""android

:id=

"@+id/pathview"

android

:layout_width=

"match_parent"

android

:layout_height=

"match_parent"

android

:layout_centerinparent=

"true"

:pathcolor=

"@android:color/white"

:svg=

"@raw/chart"

:pathwidth=

"5"/>

pathview 是我們上面的那個類。

5.在activity中 例項化物件:

final pathview pathview = (pathview) findviewbyid(r.id.pathview

);pathview.setfillafter(true);

pathview.usenaturalcolors();

pathview.setonclicklistener(new view.onclicklistener()

});

並 呼叫 開始方法。

以上就是 android 載入 svg 的實現方法了,大家一起學習,有錯誤請指出來,謝謝。

Android 中載入延時載入動畫

我們現在應用程式載入之前一般都有splash。我們今天就用乙個例項來給大家講述一下splash。在應用程式載入之前一般都有splash。源 如下 package com.easyway.splash import com.easyway.splash.r import android.content...

svg波浪動畫

之前做過css動畫 canvas動畫,但svg動畫第一次做,最終效果如下圖所示。由上圖可以看出,波浪動畫是由多個不同的 波浪 組成,而每個波浪則是由近似正弦圖形組成,最後的 波動 效果,其實是靜態的波浪迴圈向左運動產生的。上面是寫好的單個波浪,其中d屬性繪製了形狀,fill屬性表示填充的顏色。d屬性...

SVG動畫之描邊動畫

svg描邊動畫使用stroke dasharray與stroke dashoffset兩個屬性 stroke dasharray屬性可將svg圖形的路徑斷為虛線,如下 是一條直線 如新增stroke dasharray 10 10屬性後,變為下圖 可見直線被分為了間隔為10px的虛線,若實現描邊效果...