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图像不显示问题分析