WebP
是什麼WebP
、VectorDrawable
、PNG
、JPG
一塊兒構成了Android
中四種圖片的存儲格式,在學習這篇文章以前,最好能看一下下面的視頻和文章,這樣能對WebP
有一個大概的瞭解:html
WebP
的概念和優缺點 WebP 探尋之路下面是上文對於WebP
的概述,今天這篇文章,咱們就一塊兒來看如何在App
中使用WebP
。android
WebP
是一種支持有損壓縮和無損壓縮的圖片文件格式,派生自圖像編碼格式VP8
。根據WebP
比PNG
文件少了45%
的文件大小,即便這些PNG
文件通過其餘壓縮工具壓縮以後,WebP
仍是能夠減小28%
的文件大小。git
和VectorDrawable
相似,WebP
也存在兼容性的問題:github
Android 4.0
之前,默認是不支持*.webp
,這時候若是圖片源是*.webp
,那麼就須要導入外部的依賴,將*.webp
轉換成二進制流,再進行展現。Android 4.0+
到Android 4.2.1
之間,只支持徹底不透明的*.webp
圖片。Android 4.2.1
以後,對於*.webp
已經徹底支持,咱們徹底能夠像使用PNG
和JPG
文件同樣使用它。PNG/JPG
和WebP
格式的互相轉換目前,對於PNG/JPG
和WebP
格式之間的互相轉換,主要有下面兩種方式:web
Google
提供的標準工具對於官方的轉換工具的介紹,能夠查看下面這篇文檔:developers.google.cn/speed/webp/… api
下面,咱們就來演示一下整個轉換的過程:/bin
目錄下,執行轉換的命令:
此外,咱們也可使用開源的轉換工具:isparta bash
Android Studio
自帶的轉換工具在Android Studio 2.3
以後,已經內置了對於WebP
格式轉換的功能,咱們只須要在圖片資源上點擊右鍵,彈出菜單的最後一個選項: 工具
WebP
常規方案若是Android
的版本爲4.2.1
以上,那麼像使用普通圖片同樣就能夠了:學習
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.demo.lizejun.repotransition.WebPActivity">
<ImageView
android:id="@+id/web_p_1"
android:layout_width="match_parent"
android:layout_height="200dp"
android:src="@drawable/ic_bg"/>
</LinearLayout>
複製代碼
展現效果以下: 測試
WebP
兼容低版本方案假如當前的Android
版本不支持webP
,那麼就須要導入外部依賴:webp-android,關於兼容性的問題,你們能夠參考下面這篇文章: Android Webp 徹底解析 快來縮小apk的大小吧
1.Image Compression For Android Developers 2.WebP 探尋之路 3.Android Webp 徹底解析 快來縮小apk的大小吧 4.關於Android4.+(4.0~4.2.1)上無損、透明webp圖像不顯示問題分析