热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于android:VectorDrawableCompat是干什么用的?

WhatVectorDrawableCompatisfor?我读过这篇文章,但对我来说


What VectorDrawableCompat is for?


我读过这篇文章,但对我来说仍然没有意义。

从 gradle build tools 1.5.0 开始,我们可以在应用程序中使用矢量绘图。对于 Lollipop 及以上的向量使用,对于以下的 os 版本,gradle 生成 PNG 文件并将它们放在 drawable_\\'density\\'_v4 中。

好的,很清楚。

现在我们还对矢量可绘制对象进行了兼容性支持,我已按照此说明在我的应用程序中支持它们,但是当它完成并且似乎一切正常时,我仍然可以在 apk 文件中找到生成的 PNG 文件。

那么,如果应该使用支持drawable,有什么区别以及为什么会生成PNG文件?


对于 Gradle 2,您需要添加:









android {  

   defaultConfig {  

      vectorDrawables.useSupportLibrary = true  

   }  

}


到你的 build.gradle.

对于 gradle 1.5









android {  

   defaultConfig {  

     generatedDensities = []  

   }  

 aaptOptions {  

  additionalParameters"--no-version-vectors"  

   }  

 }




这里有完整的细节:http://android-developers.blogspot.co.uk/2016/02/android-support-library-232.html



相关讨论




  • 我已经说过我已按照说明进行操作,因此我在 gradle 中有这些条目。


  • 它对我来说很好,所以再试一次。你一定错过了什么


  • 您确定您没有在应用程序中生成 PNG 文件吗?另外,如果我有库模块,它们是否也需要那些 gradle 条目?


  • 我可以在通过 Gradle Buildship 插件添加了 Gradle 支持的 Eclipse Android 项目中执行此操作吗?






a)PNG 生成方案 Vs. 的区别b)VectorDrawableCompat 是 :

1) APK 大小。对于 a),您最好使用多 apk,这样一个 APK 用于 >=21,一个用于 =21 的 APK 大小。

对于 b),无论最低 API 级别如何,都应减小整个 APK 的 APK 大小。

2) 功能限制。 a) 不支持 Vectordrawable 内部的一些很少使用的属性。对于 b) 虽然支持所有属性,但它需要一些代码更改,例如从 anrdoid:src 到 app:srcCompat。

3) 参考:对于a),您可以在Java/XML 中的任何地方参考VectorDrawable(或生成的PNG),而不知道它是否为Vector。但是对于 b) 你必须使用 app:srcCompat 来引用 VectorDrawableCompat,或者在 DrawableContainer 中使用。

简而言之,如果您的目标是为所有操作系统版本提供最佳 APK 大小并且不介意稍微更改代码,请使用 VectorDrawableCompat。否则,PNG 生成单独的 APK 对您来说已经足够了。






推荐阅读
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
  • 今天就跟大家聊聊有关怎么在Android应用中实现一个换肤功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • 在一对一直播源码使用过程中,有时会出现软键盘切换闪屏问题,就是当切换表情的时候屏幕会跳动,因此要对一对一直播源码表情面板无缝切换进行优化。 ... [详细]
author-avatar
范尼萧_659
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有