天天看點

android 代碼中使用矢量圖,在 Android 中使用 SVG 矢量圖

本文為菜鳥窩作者 吳威龍 的連載

菜鳥窩是專業的程式猿線上學習平台,提供最系統的 Android 項目實戰課程

如需轉載,請聯系菜鳥窩公衆号(cniao5),并注明出處。

[toc]

前言:

SVG 格式圖檔很多優點,但是 android 程式員關心的優點無非是:SVG 較 GIF、JPEG 的優勢。

首先簡要解釋一下矢量圖像格式和位圖圖像格式的差別。矢量圖像用點和線來描述物體,是以檔案會比較小,同時也能提供高清晰的畫面,适合于直接列印或輸出。而位圖圖像的存儲機關是圖像上每一點的像素值,是以一般的圖像檔案都很大,會占用大量的網絡帶寬。SVG 是一種矢量圖形格式,GIF、JPEG 是位圖圖像格式。有了兩者的概念後,SVG 較 GIF、JPEG 的優勢顯而易見。

任意放縮:

使用者可以任意縮放圖像顯示,而不會破壞圖像的清晰度、細節等。

文本獨立:

SVG 圖像中的文字獨立于圖像,文字保留可編輯和可搜尋的狀态。也不會再有字型的限制,使用者系統即使沒有安裝某一字型,也會看到和他們制作時完全相同的畫面。

較小檔案:

總體來講,SVG 檔案比那些 GIF 和 JPEG 格式的檔案要小很多,因而下載下傳也很快。

超強顯示效果:

SVG 圖像在螢幕上總是邊緣清晰,它的清晰度适合任何螢幕分辨力和列印分辨力。

超級顔色控制:

SVG 圖像提供一個 1 600 萬種顔色的調色闆,支援 ICC 顔色描述檔案标準、RGB、線性填充、漸變和蒙版。

如何使用

這裡推薦一個圖示網站:阿裡巴巴矢量圖示庫

搜尋找到需要的圖檔,選擇 svg 下載下傳

android 代碼中使用矢量圖,在 Android 中使用 SVG 矢量圖

這裡寫圖檔描述

下載下傳好的檔案是這樣的:

android 代碼中使用矢量圖,在 Android 中使用 SVG 矢量圖

這裡寫圖檔描述

把這個檔案導入 AS 中,即可使用

android 代碼中使用矢量圖,在 Android 中使用 SVG 矢量圖

這裡寫圖檔描述

android 代碼中使用矢量圖,在 Android 中使用 SVG 矢量圖

這裡寫圖檔描述

注意導入後的 SVG 檔案,和導入前是不一樣的。

android 代碼中使用矢量圖,在 Android 中使用 SVG 矢量圖

這裡寫圖檔描述

這樣就可以和之前引用 jpg、png 圖檔那樣使用 svg 矢量圖了。

下面介紹一種炫酷的繪制動畫效果。

SVG 繪制動畫

demo 示範:

android 代碼中使用矢量圖,在 Android 中使用 SVG 矢量圖

這裡寫圖檔描述

android 代碼中使用矢量圖,在 Android 中使用 SVG 矢量圖

這裡寫圖檔描述

使用的第三方庫

//svg函數庫

compile 'com.jrummyapps:animated-svg-view:1.0.1'

compile 'com.android.support:animated-vector-drawable:${latest_version}'

具體實作過程請看源碼: