今天的越写悦快乐系列文章为大家带来Android的开发文章,如何Android应用接入SVG,在Android开发过程中,我们通常会在res/drawable
引入不同分辨率(hdpi/ldpi/mdpi/xhdpi/xxhdpi/xxxhdpi
)的图片资源(GIF/JPEG
),这样无形中会增大APK文件的体积,也就是我们要安装的包的大小,因此今天的文章为大家分享一下如何在Android应用中引入SVG格式的资源文件。
开发环境
- Window 10.0.17763
- Java 8.0.191
- Android Studio 3.3.2
Gradle 版本
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.zip
Build 版本
dependencies {
classpath "com.android.tools.build:gradle:3.2.1"
}
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "me.weitao.searchview"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
SVG是什么
SVG 是一种基于 XML 语法的图像格式,全称是可缩放矢量图(Scalable Vector Graphics)。它和位图(Bitmap)相对,SVG 不会像位图一样因为缩放而让图片质量下降。它的优点在于节约空间,使用方便。
引入单个文件
新建项目
根据Android Studio的创建向导创建
SVGDemo
新项目
新建Vector Asset
-
点击
File -> New -> VectorAsset
-
弹出窗口配置Vector Asset
-
选择
Asset Type
、名称(Name
)、路径(Path
)、大小(Size
)、透明度(Opacity
)、是否支持RTL
- 点击下一步选择
XML
文件输出路径并单击完成
低版本兼容
为了Android 5.0之后直接支持SVG的使用,但是5.0之前要使用SVG的话需要添加兼容性支持。
- 更新配置文件(
app/build.gradle
)
defaultConfig {
// 忽略其他配置
vectorDrawables.useSupportLibrary = true
}
dependencies {
// 忽略其他依赖
implementation 'com.android.support:appcompat-v7:28.0.0'
}
- 在ImageView中使用
替换
android:src
为app:srcCompat
替换ImageView
为android.support.v7.widget.AppCompatImageView
- 在Background使用
除了依附在StateListDrawable
、LayerDrawable
、LevelListDrawable
、RotateDrawable
等对象并且使用selector
来构建资源文件,最后还需要在你的Activity
中添加如下代码
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
参考
个人总结
通过以上知识点的梳理,我们知道了如何在Android应用中使用SVG资源文件,它是一种基于XML语法的的图像格式,可以节省存储空间,更能减少APK的大小,如何合理利用SVG可以显著提升App的下载速度和使用体验,再结合其他优化手段,可以让你的应用得到更多的关注,也能为用户创造更大的价值,下一篇文章文大家带来如何集成icon font到你的应用中。希望大家保持学习的热情,继续探索技术的奥秘,成为一个更加靠谱的程序员或技术工程人员。
网友评论