首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Android中使用vector drawable和一组.png图标有什么不同?

在Android中使用vector drawable和一组.png图标有以下不同之处:

  1. 图标质量:Vector drawable是矢量图形,可以无限缩放而不失真,因此在不同分辨率的屏幕上显示效果更好。而.png图标是基于像素的位图,放大时可能会出现锯齿或失真。
  2. 文件大小:Vector drawable文件通常比.png图标文件更小,因为它们是基于矢量的描述,只需要存储图形的形状和属性,而不是每个像素的颜色信息。
  3. 兼容性:Vector drawable从Android 5.0(API级别21)开始引入,因此在较旧的Android版本上可能不受支持。而.png图标是通用的位图格式,可以在所有Android版本上使用。
  4. 编辑和定制:Vector drawable可以通过修改矢量图形的属性来轻松地进行编辑和定制,例如改变颜色、大小、形状等。而.png图标需要使用图像编辑软件进行修改,较为繁琐。
  5. 动画效果:Vector drawable支持属性动画,可以实现更丰富的动画效果。而.png图标需要使用逐帧动画或其他技术来实现动画效果。

在Android开发中,使用vector drawable可以提供更好的图标显示效果和更小的文件大小,特别适用于需要适配不同屏幕密度的应用程序。对于需要定制和动画效果较多的图标,也推荐使用vector drawable。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android 矢量详解

Vector Drawables 概述 VectorDrawable AnimatedVectorDrawable 是 Android 5.0 系统第一次加入,当然我们可以使用 Android...VectorDrawble 是 xml 文件定义的矢量图形。xml 文件定义的矢量图形,它是一组带有颜色信息的点、线和曲线,使用矢量主要的优点是图形可伸缩性。...可以不损失显示质量的情况下进行缩放,这意味着我们可以不同的屏幕密度的手机上使用相同的文件。这样会使 APK 文件变小更加有利于开发人员维护。我们还可以通过多个 XML 文件矢量结合用于动画。...drawable 文件夹通过来定义,这里先来详细的介绍一下 vector 的各个属性(网上的许多不一样,网上的大多都没有自己验证过) <!...head.png 哈哈,样子太丑了,大家就凑合着看把。 drawble 创建矢量动画 目的就是将我们的矢量 objectAnimator 关联起来 <?

1.1K30

了解 Android 的矢量图片格式:`VectorDrawable`

因为 Android 设备通常具有不同的尺寸、形状屏幕像素密度,所以我更喜欢用与分辨率无关的矢量资源(vector assets)。但它们究竟是什么?有什么益处?需要什么成本?什么时候应该使用它们?...然而,矢量图像是通过抽象大小的画布上定义一系列形状来描绘图像。 为什么使用矢量?...放大的位图(左)与放大的矢量(右) 这就是为什么 Android 上我们需要为不同密度的屏幕提供多个版本的位图资源: res/drawable-mdpi/foo.png res/drawable-hdpi.../foo.png res/drawable-xhdpi/foo.png需要的时候,Android 会选择最接近的较大密度并将其缩小。...固有视口尺寸可以不同(但应该以相同的比例)— 如果你需要,可以 1*1 画布定义矢量。 元素包含一个或多个 元素。

2.5K30

Android 8.0 自适应图标

原来 Android 8.0(API 级别 26)引入了自适应启动器图标,可以不同设备模型显示各种形状。下面看下官方酷炫动态: ? ? 1. 自适应图标支持各种设备之间不同的掩码。...可以通过定义 2 层来控制自适应启动器图标的外观,包括背景前景。您必须提供图标图层作为可绘图,图标轮廓周围不能有蒙版或背景阴影。 ? 2. 自适应图标使用 2 个图层 1 个蒙版进行定义。... Android 7.1(API级别25)及更早版本,启动器图标大小为 48 x 48 dp。必须使用以下准则来调整图标图层的大小: 两层的尺寸必须为 108 x 108 dp。...--省略部分代码--> 它们都是 vector 是支持android:drawable属性,我直接换成 ic_launcher_background.png... ic_launcher_foreground.png也支持@color/资源名。

2.7K100

Android Vector曲折的兼容之路

4.jpg 文章后面,会给出本文的Demo效果,并开源Github Vector Drawable Android 5.0发布的时候,Google提供了Vector的支持。...Vector Drawable相对于普通的Drawable来说,有以下几个好处: Vector图像可以自动进行适配,不需要通过分辨率来设置不同的图片 Vector图像可以大幅减少图像的体积,同样一张,...Vector图像刚发布的时候,是只支持Android 5.0+的,对于Android pre-L的系统来说,并不能使用,所以,可以说那时候的Vector并没有什么卵用。...VectorAndroid中指的是Vector Drawable,也就是Android的矢量,详见:https://developer.android.com/reference/android...png,而在5.0以上的版本使用VectorDrawable.build.gradle添加generatedDensities配置,可以配置生成的png图片的密度。

1.7K30

聊聊有关SVG那些事儿

SVG加载的过程得到非常大优势,而Draw的时候因为没有硬件渲染导致性能远不如PNG。但通过加载阶段的大幅提升,让SVG整体耗时上赢了PNG。...所以,我们可以将“加载”“渲染”放在一起进行比较,就是因为只有第一次的加载渲染上我们同PNG不同的。...而Android的矢量,便是VectorAndroid也被称为Vector Drawable。...(所谓的兼容也就是表里不一,即低版本非真实使用SVG,而是生成PNG图片) ❈ 还要说明的是,Android 5.0发布的时候,Google提供了Vector的支持,即:Vector Drawable类...Vector Drawable,Hello Vector Drawable相对于普通的Drawable来说,有以下几个好处: (1)Vector图像可以自动进行适配,不需要通过分辨率来设置不同的图片

1.3K40

Ways to Use Icons on Android (1)

其中android平台的图标又包括两种类型的,一种是存放在drawable-xxxdpi文件夹下的PNG格式文件,里面的图标有4种大小,分别是18dp、24dp、36dp48dp;另一种是存放在drawable-anydpi-v21...2.复制使用方式 复制使用方式就是如果项目中我们需要某张Material Design风格的图片的话,我们可以直接拷贝PNG格式的文件或者XML格式的文件,区别是后者只支持Android Lollipop...Drawable Importer功能可以快速导入PNG或者JPG格式的图片文件,还可以设置大小颜色。...此外,利用它的Vector Drawable Importer功能就可以导入XML格式的Vector Drawable文件,导入之后可以项目的res/drawable目录中看到导入的文件。 ?...实际的项目开发中肯定会有很多自定义的小图标或者来自不同来源的小图标,如果遇到这种情况该怎么办呢?

46520

Android--SVG安卓系统的应用

SVG,即Scalable Vector Graphics 可伸缩矢量图形,这种图像格式在前端已经使用的非常广泛了 SVG图片相对于一般的图片(png、jpg等),拥有占用体积小,支持等比例缩放不失真...,性能高等优势,谷歌Android5.0引进了SVG,并转化为VectorAndroid中指的是Vector Drawable,也就是Android的矢量,可以说Vector就是Android...(所谓的兼容也是个坑爹的兼容,即低版本非真实使用SVG,而是生成PNG图片) Vector Drawable:相对于普通的Drawable来说,有以下几个好处: 1.Vector图像可以自动进行适配...2.Vector图像可以大幅减少图像的体积,同样一张,用Vector来实现,可能只有PNG的几十分之一。...接下来是我们程序员需要注意的地方,工程中使用Vector Drawable兼容5.0以下的版本方法 1、使用Android Studio 2.2以上的版本,gradle版本2.0以上 1.1、gradle

2.7K20

Android Material UI控件之MaterialButton

打开之后看下面这个 ? 可以得出什么内容呢?...因为这个描边是内外描边,如果不加这个1dp的填充,会出现上下按钮最边缘出描边宽度一半的切割,我之前低版本的Android手机上就是这样写的,不过Android11好像修复了这个问题,我不设置padding...还提供了大部分开发过程中常用的图标,不过图标是Material风格的,下面来看看怎么AS中使用这种图标。 插件安装那里。输入Android material回车搜索。...因为设计这种的时候就只有这种标准的尺寸,注意它们都是2的倍数,实际开发也要遵循这个原则,这是设计的原则,不遵守也没关系。...你会发现它自己新建了一个文件夹,我觉得这是一个bug,但是无所谓,反正图标有了就可以了,把图标复制粘贴到mipmap.xml下之后删除这个drawable-xhdpi文件夹。

3K20

AndroidDrawable 详解

用法 不同情况下有很多可绘制的类型,设置按钮的状态行为,创建可伸缩的按钮背景创建复合可绘制图层。...Drawable List 状态集合 StateListDrawable是一个XML定义的可绘制对象,根据对象的状态,使用多个不同的图像来表示相同的图形。...NinePatch是具有.9.png文件扩展名的图像,表示这是一个可伸缩的PNG图像。该文件与正常的PNG文件没有什么不同,除了您将添加细黑线以指示图像的垂直水平“可拉伸”“填充”区域。...假设您已更新到Android Studio v2.2,您可以File => New => Vector Asset向导检查vector drawable: ?...其优点是根据当前主题使用的图像风格。例如,Twitter最近的Android UI更新,大多数图像以黑色的形式存储为vector drawables: ?

5.2K50

Android高级开发-APK极致优化

SVG(Scalable Vector Graphics)可缩放矢量 使用矢量代替位图可以减小 APK 的尺寸,因为可以针对不同屏幕密度调整同一文件的大小,而不会降低图像质量。...矢量首次加载时可能消耗更多的 CPU 资源。之后,二者的内存使用性能则不相上下。我们建议您将矢量图像限制为最大 200 x 200 dp;否则,绘制它可能需要耗费很长的时间。...SVG是由XML定义的,标准SVG根节点是Android通过Vector实现支持,根节点是 ? ? ?...如果应用的最低 API 级别低于以上版本,Vector Asset Studio 会将矢量图文件添加到项目中;另外,构建时,Gradle 会创建不同分辨率的 PNG 光栅图像。...java代码中使用DrawableCompat Drawable orgiDrawable = ContextCompat.getDrawable(this, R.drawable.btn_default_normal_holo

1.2K40

优化| APK瘦身最佳实践

/x86_64/META-INF CERT.RSA CERT.SF MANIFEST.MF/res /anim ...resources.arsc 各个文件目录的作用是什么呢...矢量 如果你的项目中使用 appcompat 兼容包,并且版本23.2以上,那么,使用矢量或许是个不错的选择。矢量分辨率无关,理论上支持任何级别的缩放。...以一张常用的 点赞 图标为例, Android使用 Vector 矢量,大小为: ? 而它对应的xxxhdpi的png格式,大小为: ?...使用JPG 对于非透明的大,JPG格式将会比PNG格式的大小有显著的优势,虽然不是绝对的,但是通常会减小到一半都不止。启动页,活动页等之类的大展示区采用JPG将是非常明智的选择。...例如在Android 5.0+上我们可以使用 android:tint android:tintMode,低版本可以使用 ColorFilter。

95630

androidDrawable详解

、发散渐变和平铺渐变效果,Android可以使用GradientDrawable表示很多复杂而又绚丽的界面效果。...从它的名字也很容易理解“点九”的含义,其实相当于把一张PNG分成了9个部分(九宫格),分别为4个角,4条边,以及一个中间区域,4个角是不做拉伸的,所以还能一直保持圆角的清晰状态,而2条水平边2条垂直边分别只做水平和垂直拉伸...使用了*.9.png图片技术后,只需要采用一套界面切去适配不同的分辨率,而且大幅减少安装包的大小。 ? 对于创建ninePatchDrawable也是极其简单的。 <?...使用点九图片时需要注意的是,点九只能适用于拉伸的情况,对于压缩的情况并不适用,如果需要适配很多分辨率的屏幕时需要把点九做的小一点。...每一个drawable都对应着一组状态,状态的选择类似于java的switch-case组合,按照顺序比较状态,当遇到匹配的状态后,就返回对应的drawable,因此需要把最精确的匹配放置最前面,按照从精确到粗略的顺序排列

81650

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

的矢量Android 5.0 ( API Lv 21 ) 以上的版本开始支持 , 对于 Android 5.0 以下的版本 , 有两种解决方案 ; ① 将矢量生成为 PNG 图片 ; ② 使用...23.2 及以上版本的支持库 ; 二、矢量生成为 PNG 图片 ---- 矢量生成为 PNG 图片 : 如果当前应用设置的最低 API 版本低于 21 , 一般设置为 18 ; 使用 Vector...Asset Studio 生成矢量时 , 将矢量自动添加到项目中 , 同时 build.gradle , android / defaultConfig 层级下 , 配置 generatedDensities...安装包优化】Android使用 SVG 图片 ( SVG 矢量简介 | Android 中生成 Vector 矢量资源 ) , res/drawable 资源目录下 , 生成了一张矢量...; build.gradle 中进行上述配置之后 , 编译应用 ; 分析生成的 apk 文件 , apk 的不同分辨率的资源目录 , 分别生成了不同分辨率的 ic_plane.png 图片

44510

Android 应用中使用矢量资源

之前的文章,我们研究了 Android 的 VectorDrawable 图像格式以及它能够实现的功能: Understanding Android’s vector image format:...这没什么不好的,如果/当 VectorDrawable 未来扩展了新的功能,并且它们也被添加到 AndroidX ,那么它们就可以直接使用,而不需要重新检查代码。...这就是为什么使用 android:pathData 引入你的向量而不是必须切换到 app:pathData 等其他后移功能。 2....否则,你可能需要为不同的 API 准备不同的资源了: res/ drawable-xxhdpi/ foo.png <-- raster drawable-anydpi-v21...使用 AndroidX 支持既可以更多平台版本后端功能上使用矢量资源,也可以让你接收任何未来的更新。 现在我们已经理解了为什么以及如何使用向量,下一篇文章将深入探讨如何创建它们。

1.5K30

Android高级动画(2)

ImageView不同手机上的图片分辨率是不同的,如果我们只用一套图片,那必然存在放大失真问题。...靓仔 矢量登场 矢量不同于位图是用像素描述图像的,它是用数学曲线描述图形。所以一张图片就是对应着一系列的数学曲线,所以图片的显示尺寸图片体积无关。...(这里为什么说显示尺寸,因为矢量根本就没有所谓的尺寸,就看你把它显示成多大),它的体积就是文本文件的大小。并且矢量可以无限拉伸不失真。 先来看一个Android使用矢量的例子: ?...SVG就是标准的矢量格式,Android使用矢量虽然没有直接使用SVG图片,但是基本格式是SVG一样的。 SVG语法 SVG的语法太复杂了,这里不可能全部讲一遍。...,这里前面稍有不同

1.6K20

Android样式的开发:drawable汇总篇

还好有切工具,可以让切变得简单,这里推荐两款:CuttermanCut&Slice me,都是Photoshop下的插件,输出支持android、iosweb三种平台。...使用工具虽然方便了,但还是无法避免一套图片需要提供多张不同尺寸的图片,这会加大安装包的大小。另外,需要对图片做改动时,比如换个颜色,必须更换所有尺寸图片。...:.9.png,通过点九图片可以做局部拉伸,比如,一张圆角矩形图片,我们不想让它的四个边角都被拉伸从而导致模糊失真,使用点九就可以控制拉伸区域,让四个边角保持完美显示。..." android:drawable="@drawable/img4clip" android:gravity="left" /> ImageView引用: <ImageView...level-list可以管理一组drawable,每个drawable设置一组level范围,最终会根据level值选取对应的drawable绘制出来。

2.2K10

AppCompat v23.2  -- Vectors的时代

众所周知:开发者想使用资源图片,我们已经把支持矢量绘制添加到了APP。 一下是几个整合的原因,包括: 允许开发者在所有的Android2.1以上的设备更早的用上图 允许APP本身能够用矢量。...快速的节省是为了存储传输。 *首先 VectorDrawableCompat依赖与AAPT的一些功能,它能保持最近矢量使用的添加的属性ID,以便他们可以被v21之前的引用。...api7+有两种使用矢量的方法: AppCompatImageView AppCompat的“injects”代替了许多框架的组件。...下面是一个我们已经用过的矢量的例子: res/drawable/ic_search.xml <vector xmlns:android="..."...规则仅仅是矢量需要在一个分离的文件。 矢量动画是什么? 到目前为止我们仅仅讨论了“static”的矢量,所以让我们谈谈矢量动画。他们用同样的方式工作,但是他们仅仅在api 11+可用。

44440

VectorDrawable与AnimatedVectorDrawable

根元素 vector 是用来定义这个矢量的,该元素包含如下属性: android:name 定义该drawable的名字 android:width 定义该 drawable 的内部(intrinsic...)宽度,支持所有 Android 系统支持的尺寸,通常使用 dp android:height 定义该 drawable 的内部(intrinsic)高度,支持所有 Android 系统支持的尺寸,通常使用...你通常在三个XML文件定义矢量资源的动画载体: 元素的矢量资源,res/drawable/(文件夹) 元素的矢量资源动画,res/drawable...当你想要创建动画时去定义矢量资源,使用android:name属性分配一个唯一的名字给组路径,这样你可以从你的动画定义查询到它们。...="360"/> 那么布局怎么用呢。

92350

Android资源res之矢量完全指南(加SVG-path命令分析)

剑.png ---- 3.SVG转为Android可用Xml 下载的svgAndroid可不能直接用哦,你有3种选择: 3.1--AS自带的转换 ?...svg2xml.png ---- 二、VectorDrawable的使用 vector一览: ? vector.png path标签一览: ?...矢量剑.png 方法1:直接改:fillColor 方法2:使用时:android:tint="@color/red" ---- 2.分组与变换(吾王之剑岂可不正) 用group将path包起来就可以对...线条与填充.png 关于path的知识填充模式Android关于Path你所知道的不知道的一切,讲的很详细,这里就不费神了 ---- 三、矢量动画 动画基本套路如下--简单画一个示意图: ?...:name="trim_path"/> ---- 1.4--使用 <ImageView android:id="@+id/id_iv" android

1.4K40
领券