android支持图片格式
Ⅰ android系统的手机可以看格式是png的图片吗
可以的,android图片大多都是png的,
Ⅱ android图片系列 (2) - 静态 SVG 图片
SVG 图片是一种可支持任意缩放的图片格式,使用 xml 定义,使用 canvas 中 path 路径来完成绘制,和我们传统使用的 BitMap位图有很大的区别。
SVG 在前端早就普及了,在android 中是 google 是在5.0之后开始支穗埋持的,14年出来之后兼容是个大问题,随着2016.2 V7包 23.2.0版本的发布才算是有个相对完善的兼容使用方案。
SVG 的概念我就不写了,拿来主义啦,原文: Android Vector曲折的兼容之路
不瞎逼逼,我们先来看一看 android 中的 SVG 矢量图是个什么东东
看到没有,这就是一个 SVG 矢量图片,就是一个 xml 文件,右边是预览,先说下,这东西的好处:缩放不失真,体积小。这一个 SVG 图片只有970个字节...强大吧,比 png 格式的图片强的没边了吧,png 我们还得适配,做多套,然后一个一个改名字复制到工程里,有了 SVG 妈妈再也不担心我们写作业啦...
这里需要解释下这里的几个标签:
这里有一分详细的属性说明:
好了下面开始介绍 SVG 啦
首先,需要讲解两个概念——SVG和Vector。
SVG,即Scalable Vector Graphics 矢量图,这种图像格式在前端中已经使用的非常广泛了
Vector,在Android中指的是Vector Drawable,也就是Android中的矢量图
因此,可以说Vector就是Android中的SVG实现猜颤蚂,因为Android中的Vector并不是支持全部的SVG语法,也没有必要,因为完整的SVG语法是非常复杂的,但已经支持的SVG语法已经够用了,特别是Path语法,几乎是Android中Vector的标配
Android以一种简化的方式对SVG进行了兼容,这种方式就是通过使用它的Path标签,通过Path标签,几洞消乎可以实现SVG中的其它所有标签,虽然可能会复杂一点,但这些东西都是可以通过工具来完成的,所以,不用担心写起来会很复杂。
Path指令解析如下所示:
支持的指令:
M = moveto(M X,Y) :将画笔移动到指定的坐标位置
L = lineto(L X,Y) :画直线到指定的坐标位置
H = horizontal lineto(H X):画水平线到指定的X坐标位置
V = vertical lineto(V Y):画垂直线到指定的Y坐标位置
C = curveto(C X1,Y1,X2,Y2,ENDX,ENDY):三次贝赛曲线
S = smooth curveto(S X2,Y2,ENDX,ENDY)
Q = quadratic Belzier curve(Q X,Y,ENDX,ENDY):二次贝赛曲线
T = smooth quadratic Belzier curveto(T ENDX,ENDY):映射
A = elliptical Arc(A RX,RY,XROTATION,FLAG1,FLAG2,X,Y):弧线
Z = closepath():关闭路径
坐标轴为以(0,0)为中心,X轴水平向右,Y轴水平向下
所有指令大小写均可。大写绝对定位,参照全局坐标系;小写相对定位,参照父容器坐标系
指令和数据间的空格可以省略
同一指令出现多次可以只用一个
注意,’M’处理时,只是移动了画笔, 没有画任何东西。 它也可以在后面给出上同时绘制不连续线。
关于这些语法,开发者需要的并不是全部精通,而是能够看懂即可,其它的都可以交给工具来实现。
这里有一篇 Android vector标签 PathData 画图超详解 详细描述了 SVG 中 path 的绘制
好了概念性的东西说完了,我们来看看
SVG 的使用分2种,一种是静态 SVG 矢量图,就是本文的主角,本章节主要谈论的东西,另一种是 SVG 矢量动画,是SVG 的高级应用,是给静态 SVG 加上objectAnimator 动画,应用的很广泛,是实现 android icon 动态交互的核心做法。
上面的SVG 图大家都看到了,我们就是写一个 xml 的文件,里面承载的标签都是描述如何绘制我们想要的图案的,画布大小,颜色,路径等,然后交给系统去绘制。
现在让我们来看看 SVG 在 andorid 中如何应用,如何兼容5.0以下版本。
SVG 虽然早早就在前端使用了,但是 android 上开始支持 SVG 的使用还是从5.0开始的,在5.0以上系统的使用很简单,和之前一样使用 PNG 图片一样
首先 android 中的 SVG 图片的承载方式是一个 xml 文件,所以UI 给我们的 SVG 图片是不能直接使用的,这里 google 给我们提供加载方式
Android studio 在 2.3.3 的版本中可以直接使用 svg,新建一个 SVGDemo项目,新建 Vector Asset 文件:app-> main -> New -> Vector Asset 如图所示:
我们选择 Local File 就是选择本地svg文件进行导入,对文件命名后点击 Next ->Finish 在 drawable目录 下就添加了一个.xml的文件
好了这样一个 svg 图片我们算是加入到我们的工程里里了,可以直接使用了。当然在此之前我们把 SVG 图片放在那个 drawable 文件夹呢。对于这个问题就要说一下了:
有一点需要解释一下,svg 矢量图文件我们放在drawable 根目录即可。android 系统不会根据你把 svg 矢量图存放在不同的 drawable 文件夹,对图片进行分辨率上的缩放,因此我们不用像使用 PNG 图片时准备多套图片了。我们导入 SVG 图片默认存放的地址就是 drawable根目录,所以我们就放这里就好了,当然也可以自己写SVG 图片,都是 xml 的,自己写完 path 路径后都是可以查看预览的,一般也不会自己写,都是UI 的活。
这样就 ok啦,5.0以上的系统SVG你就像一般 png 图片一样使用就好啦,你可以试一下。
SVG 在 4.x 版本上的兼容根据 SVG 使用范围的变化,配置也是逐步增加的
这时 imageview 就不行了,我们需要使用 AppCompatActivity 或是 AppCompatImageView,这时我们需要导入 V7 包
gradle 需要如下配置:
系统会在 4.x 版本时对 SVG 自动生成相应的 drawable 图,此时 SVG 是没有无限拉伸特性的,gradle 的配置目的是去这个
举个例子:
资源设置不能用 src 了,必须使用 srcCompat ,这时我们能看到图而不是去 SVG 的特性了
这时上面的设置就不够了,我们在 view 所在的 activity 或是全局添加下面的设置
然后这还不够,我们必须给 SVG 图片添加一个容器,比如 selector,这样我们才能正常使用,比如给 textview 设置图片,自定义属性设置图片
这个 vc_halfstart_24dp 就是 SVG 图片
这个我们必须要添加官方的 vectorDrawable 支持库了,最低支持到 23.2.0
这样基本就没啥问题了
SVG 配合自定义 view 的话,就得我们读取 SVG 然后转换成 path 路径来画了,SVG 实质上也是 xml 文件,所以解析 xml 文件的思路也使用,当然还有其他一些 SVG 转 path 的思路
SVG前戏—让你的View多姿多彩 一文中提供了一些思路,大家不妨去看看
Ⅲ Android对图片格式有什么建议么,PNG还是JPEG
这个时代。可以把PNG当作GIF的替代来用。
PNG各方面的功能和性能都可以完美替代GIF。在WEB上不流行是因为IE6对于PNG的透明兼容性很差。
但是在手机应用,GIF已经可以进入坟墓了。
小尺寸,色彩数少,或者需要用到透明的时候,使用PNG。
大尺寸,色彩渐变色多的用JPG。
Ⅳ Android发布主流应用市场icon&应用截图尺寸
*应用小图标:尺寸:16 * 16、大小20K以内、PNG格式。
*应用图标:尺寸:512 * 512、大小200K以内、PNG格式
*应用截图:请上传4-5张截图(尺寸保持一致),单张图片不超过1M。截图不能小于320*480像素, 推荐480*800像素。JPG、PNG格式。
*应用图标:图标需为正方形。大小:2MB 以内;尺寸:216*216px;格式:PNG、 WEBP。
*应用截图和视频:您可以在这里上传应用详情页展示的素材。介绍截图是必填素材,其他素材可选填,如果您提交了其他素材可能会让该应用在华为应用市场客户端有更好的展示效果。
竖向截图:需上传 3~5 张。大小:2MB 以内;尺寸:450*800px;格式:PNG、 JPG、 JPEG、 WEBP。(推荐使用竖向截图)
*应用图标:请确保上传的图标和APK内的图标一致(512 X 512,png格式)
*应用截图:请至少上传3张图片,至多5张截图,大小不大于5M,1080*1920。
*icon:要求与安装包中图标一致。尺寸:512*512px,图片格式:PNG,小于1M。
*上传竖版截图:请上传3-5张截图,支持JPG、PNG格式。截图尺寸要求:1080*1920,单张图片不能超过1M。请去除截图中的顶部状态栏的通知图标,图片中不得使用其他品牌的手机作为边框或宣传图
*应用icon:支持jpg/png格式,尺寸要求长等于宽,不低于256*256,不超过512*512,大小50k以内,仅支持直角图标,
*上传截图:上传3-5张清晰截图。尺寸为竖图480*800,格式为jpg/png,每张图片尺寸一致,单张图片不超过2MB)
*icon:PNG 格式,512 X 512 像素,小于 1024 KB。
*截图:JPG/PNG 格式,最小 320 像素,最大 3840 像素,图片比例 2:1,至少需要4个图片,最多可上传8个。可以注册4~8张图片,图片将会按照您的注册顺序进行展示。
*应用图标:要求与安装包中图标一致。尺寸:512*512PX,圆角半径弧度:70PX,图片格式:PNG。
应用截图: 请上传4-5张截图(尺寸保持一致),支持JPG、PNG格式。截图尺寸要求:不小于800*480(480*800),单张图片不能超过3M。请去除截图中的顶部通知栏。
*应用图标:尺寸512x512,格式PNG,小于1M。
*应用截图:请上传至少 3 张图片,规格:1280 x 720或720 x 1280,1800 x 1012或1012 x 1800,1920 x 1080或1080 x 1920,2560 x 1440或1440 x 2560
图片请勿出现与应用实际功能无关的内容
图片请勿出现重复、拉伸、压缩、模糊、黑(白)边、黑(白)角
图片请勿出现第三方应用市场LOGO或其他品牌手机外观素材,推荐使用魅族手机外观素材
*应用图标
请上传PNG格式的图标,尺寸:200X200 px,大小:小于800KB。
请开发者重点关注以下注意事项,大部分应用曾因此不合规被拒绝:
1.提交应用图标必须与渠道包内解析图标保持一致
2.应用图标必须为透明背景,不可存在白边、蓝边等特殊情况
*应用截图
请上传JPG或PNG格式的图片,最小尺寸:800 X480 px,单张图片小于1M。
请开发者重点关注以下注意事项,大部分应用曾因此不合规被拒绝:
1.截图数量:4-6张(每张截图不得相同,且需保持尺寸一致);
2.截图必须与软件实际运行内容一致;
3.截图中不得含有与App本身无关的应用图标;
4.截图不得为应用启动画面;
5.请务必上传竖版截图
Ⅳ Android中如何实现对Tiff格式图片的支持
在java中有ImageIO的对象可以处基含理搏困笑tiff,把tiff格式尺拆转换成jpg等格式android应该需要第三方的支持
Ⅵ android里面的图片资源怎么都是png的
因为png格式的文件支持透明度,android中可以存在四种png后缀的image文件
1.标准PNG: (ex.应用默认的icon.png)
符合PNG-8标准的PNG图片, 只能做图片, 不能放缩.
2.Android打包处理后的9.png: (ex.应用APK中打包的9.PNG)
为了保证占用空间小,android在资源中删除了标准PNG的大量冗余信息,去除了周边的空白像素,减少了IDAT数据段,
在打包成APK的时候,里面的文件就是不可放缩的9.png, 虽然后缀名还是9.png,但是已经没有放缩功能,并且把边界多的两个像素也去除了.
3.Android不可放缩的9.png:
在drawable中可以找到9.png图片,但是使用Draw 9-patch软件打开会报错,但是可以在drawable中使用,
这些文件只是删除了冗余信息,并且加上了边界的两个像素点,
并没有添加可放缩的flag到文件中,这些文件只能作为打包后的9.PNG使用(但是size会小一些),不能放缩和做背景.
4.Android可放缩的9.png:
可以使用Draw 9-patch软件打开,不会报错,在drawable中使用,android会根据设置的黑色像素点来进行放缩.
有添加可缩放的flag到文件中,可以做为View的背景或者普通的图片显示.在做背景时,可以进行拉伸和放缩.
在做非背景时,比如像ImageView这类设置src图片则不随view变化,按其自身大小显示部分或全部.
另: 对9.png后缀文件的解析逻辑及可放缩chunk检查的逻辑 Images.cpp
对9.PNG判断函数入口: Drawable.java中对”nine-patch”字段的判断
Ⅶ Android对图片格式有什么建议么,PNG还是JPEG
其实png和jpeg都可以,image载入以后,在内存里面是一样的.但是png的压缩算法解压快很多,jpeg的话可以有很高的压缩比(当然会有损失) 所以,你可以自己来平衡文件大小,图片质量和解压代价之间的关系
Ⅷ 为Android应用添加背景应该使用什么样的图片格式,每个格式的的优势在哪
原创回答:《转载前请注明 from 网络知道-smile乌龟的回答》
先说结论;
1. 大的ViewGroup(Rl,FL ,LL,Cl等)布局背景应该设PNG
2. 小的view(Button,Recyclerview子item)的背景应该用WebP格式
3. 类似16*16的表情图 也应该用WebP,也可考虑PNG
在研究图片之前,首先搞明白三个问题:
像素点:计算机学科中,图片由一个一个像素点组成,像素点有两种ARGB和RGB,A,读作“alpha”,中文“透明度”的含义。
图片格式:JPEG 有损压缩
优点 :压缩过程中损失像素少(为什么要压缩?后文会说)
缺点:有损耗压缩会使原始图片数据质量下降(像素点变少了)
PNG无损压缩
优点:更优化的网络传输显示
(PNG图像在浏览器上采用流式浏览,即使经过交错处理的图像会在完全下载之前提供浏览者一个基本的图像内容,然后再逐渐清晰起来。它允许连续读出和写入图像数据,这个特性很适合于在通信过程中显示和生成图像)
支持透明效果
体积小适合网络传输,请求服务端的图片,节省流量
WebP 谷歌(google)开发的一种旨在加快图片加载速度的图片格式
优点:“在质量相同的情况下,WebP格式图像的体积要比JPEG格式图像小40%”
“WebP
的优势体现在它具有更优的图像数据压缩算法,能带来更小的图片体积,而且拥有肉眼识别无差异的图像质量;同时具备了无损和有损的压缩模式、Alpha
透明以及动画的特性,在向JPEG 和 PNG 上的转化效果都非常优秀、稳定和统一”
WebP应用比较优秀的:腾讯旗下 QQ空间客户端,QQ客户端,微信客户端等
WebP图片常用转换工具:智图,iSparta等
图片压缩:
以Android 为例,任何展示图片的View控件,加载图片的时候,都需要为图片申请内存,通常图片越大,申请的内存越大,Android系统限制了每个App的运行内存,一般为32MB-200M左右,为了优化App性能,必须对图片进行压缩:压缩图片尺寸
通过压缩图片尺寸,解决App运行时申请过多内存,被系统杀死的情况。
总结: JPEG是有损压缩,PNG是无损压缩,
当UI切了一张匹配实际手机屏幕大小的图片时 可以使用JPEG(不需要压缩图片)
当UI给的图片过大,需要程序员手动压缩时,考虑PNG
当UI给的图片过于离谱,不可理喻,导致APK包过大,用户反映耗费流量过多时,考虑使用WebP,而且WebP同PNG,JPEG是可以互转的
(PS:请求自服务端的图片资源,其实也是UI给的)
参考和补充:
图片格式,JPEG PNG WebP from网络
http://isux.tencent.com/introction-of-webp.html
http://www.cnblogs.com/xiangism/p/5311314.html
WebP图片常用转换工具:智图,iSparta 等
官方WebP解析库https://github.com/alexey-pelykh/webp-android-backport
Ⅸ Android图片处理(入门)
图片格式概述:
但是上述方法只适合加载比较小的图片,真正加载一张高清大图的时候就会出现内存溢出并耐,解决方案如下:
相关链接:
图片处理(进阶)
如以上内容有任何错误或毁铅补充,欢纤蔽好迎加QQ:1195211669 ,验证信息:
Ⅹ android开发中图片大小的兼容问题
最标准的就是制作.9.png格式图片,保证拖拉不变形,毕氏誉通常android程序的小图标最好手段都做核孝成这种格式;
对于引导页,通常只要做drawable-hdpi,drawable-mdpi,drawable-ldpi三个图就基本可以了,然后在布局里设置为 fill_parent,支持主流即可。不然挨个写布局文件太麻烦了,android碎片化的弊端啊