美文网首页
越写悦快乐之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