美文网首页
越写悦快乐之Android应用如何接入SVG

越写悦快乐之Android应用如何接入SVG

作者: 韬声依旧在路上 | 来源:发表于2020-10-07 22:35 被阅读0次
Android开发 - 图片来自我的手机

今天的越写悦快乐系列文章为大家带来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

配置Vector Asset - 图片来自我的手机
  • 点击下一步选择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:srcapp:srcCompat
替换ImageViewandroid.support.v7.widget.AppCompatImageView

  • 在Background使用

除了依附在StateListDrawableLayerDrawableLevelListDrawableRotateDrawable等对象并且使用selector来构建资源文件,最后还需要在你的Activity中添加如下代码

static {
    AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}

参考

个人总结

通过以上知识点的梳理,我们知道了如何在Android应用中使用SVG资源文件,它是一种基于XML语法的的图像格式,可以节省存储空间,更能减少APK的大小,如何合理利用SVG可以显著提升App的下载速度和使用体验,再结合其他优化手段,可以让你的应用得到更多的关注,也能为用户创造更大的价值,下一篇文章文大家带来如何集成icon font到你的应用中。希望大家保持学习的热情,继续探索技术的奥秘,成为一个更加靠谱的程序员或技术工程人员。

相关文章

网友评论

      本文标题:越写悦快乐之Android应用如何接入SVG

      本文链接:https://www.haomeiwen.com/subject/npiqpktx.html