日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

【Android 安装包优化】Android 中使用 SVG 图片 ( Android 5.0 以下的矢量图方案 | 矢量图生成为 PNG 图片 )

發布時間:2025/6/17 Android 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Android 安装包优化】Android 中使用 SVG 图片 ( Android 5.0 以下的矢量图方案 | 矢量图生成为 PNG 图片 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、Android 5.0 以下的矢量圖方案
  • 二、矢量圖生成為 PNG 圖片
  • 三、完整的 build.gradle 構建腳本
  • 四、編譯效果
  • 五、參考資料





一、Android 5.0 以下的矢量圖方案



Android 矢量圖參考文檔 : https://developer.android.google.cn/studio/write/vector-asset-studio


Android 中的矢量圖從 Android 5.05.05.0 ( API Lv 212121 ) 以上的版本開始支持 , 對于 Android 5.05.05.0 以下的版本 , 有兩種解決方案 ;

  • ① 將矢量圖生成為 PNG 圖片 ;
  • ② 使用 23.2 及以上版本的支持庫 ;




二、矢量圖生成為 PNG 圖片



矢量圖生成為 PNG 圖片 :

如果當前應用設置的最低 API 版本低于 212121 , 一般設置為 181818 ;

使用 Vector Asset Studio 生成矢量圖時 , 將矢量圖自動添加到項目中 ,

同時在 build.gradle 中 , 在 android / defaultConfig 層級下 , 配置 generatedDensities 選項 , 之后進行項目構建時 , Gradle 會創建不同分辨率的 PNG 圖片 , 這些分辨率在 generatedDensities 中指定 , ['hdpi', 'mdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi'] 是一個 Set 集合 , 元素是 String 字符串 ;

android {defaultConfig {generatedDensities = ['hdpi', 'mdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi']} }

Gradle 語法參考文檔 : com.android.build.gradle.internal.dsl.ProductFlavor:generatedDensities





三、完整的 build.gradle 構建腳本



配置的核心就是在 android / defaultConfig 層級下 , 配置 generatedDensities 選項 ;

// ★ 矢量圖生成 PNG 配置 generatedDensities = ['hdpi', 'mdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi']

完整配置文件 :

plugins {id 'com.android.application'id 'kotlin-android' }android {compileSdkVersion 30buildToolsVersion "30.0.3"defaultConfig {applicationId "kim.hsl.svg"minSdkVersion 18targetSdkVersion 30versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"// ★ 矢量圖生成 PNG 配置 generatedDensities = ['hdpi', 'mdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi']}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}kotlinOptions {jvmTarget = '1.8'} }dependencies {implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"implementation 'androidx.core:core-ktx:1.3.2'implementation 'androidx.appcompat:appcompat:1.2.0'implementation 'com.google.android.material:material:1.3.0'implementation 'androidx.constraintlayout:constraintlayout:2.0.4'testImplementation 'junit:junit:4.+'androidTestImplementation 'androidx.test.ext:junit:1.1.2'androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' }



四、編譯效果



在上一篇博客 【Android 安裝包優化】Android 中使用 SVG 圖片 ( SVG 矢量圖簡介 | Android 中生成 Vector 矢量圖資源 ) 中 , 在 res/drawable 資源目錄下 , 生成了一張矢量圖 ;

在 build.gradle 中進行上述配置之后 , 編譯應用 ;

分析生成的 apk 文件 , 在 apk 的不同分辨率的資源目錄中 , 分別生成了不同分辨率的 ic_plane.png 圖片 ;

在 build.gradle 構建腳本中 , 設置了 ‘hdpi’, ‘mdpi’, ‘xhdpi’, ‘xxhdpi’, ‘xxxhdpi’ 這幾個分辨率 , 那么生成 APK 時 , 就會在對應上述 555 個分辨率對應的資源文件中生成該矢量圖對應的 PNG 位圖 ;

// ★ 矢量圖生成 PNG 配置 generatedDensities = ['hdpi', 'mdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi']






五、參考資料



參考文檔 :

  • 添加多密度矢量圖形 SVG : https://developer.android.google.cn/studio/write/vector-asset-studio

  • 縮減、混淆處理和優化應用 : https://developer.android.google.cn/studio/build/shrink-code

  • SVG 語法格式 : https://www.runoob.com/svg/svg-tutorial.html


博客資源 :

  • GitHub 項目源碼 : https://github.com/han1202012/SVG

  • 下載地址 : https://download.csdn.net/download/han1202012/18503065

總結

以上是生活随笔為你收集整理的【Android 安装包优化】Android 中使用 SVG 图片 ( Android 5.0 以下的矢量图方案 | 矢量图生成为 PNG 图片 )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。