文档章节

Android 图片资源显示效果

今日竹石
 今日竹石
发布于 2013/12/16 11:34
字数 1837
阅读 225
收藏 6

       Android系统支持常见的图片资源格式,如jpg、png、gif等。这几种主要图片格式的特点如下:

1.    Gif格式图片的特点

透明性:Gif是一种布尔透明类型,既它可以是全透明,也可以是全不透明,但是它并没有半透明(alpha 透明)。

动画:Gif这种格式支持动画。

无损耗性:Gif是一种无损耗的图像格式,这也意味着你可以对gif图片做任何操作也不会使  得图像质量产生损耗。

水平扫描:Gif是使用了一种叫作LZW的算法进行压缩的,当压缩gif的过程中,像素是由上到下水平压缩的,这也意味着同等条件下,横向的gif图片比竖向 的gif图片更加小。例如500*10的图片比10*500的图片更加小。

间隔渐进显示:Gif支持可选择性的间隔渐进显示

由以上特点看出只有256种颜色的gif图片不适合照片,但它适合对颜色要求不高的图形(比如说图标,图表等),它并不是最优的选择,我们会在后面中看到png是最优的选择。

2.    Jpeg格式图片特点

透明性、动画:它并不支持透明,也不支持动画。

    损耗性:除了一些比如说旋转(仅仅是90、180、270度旋转),裁切,从标准类型到先进类型,编辑图片的原数据之外,所有其它操作对jpeg图像的处理 都会使得它的质量损失。所以我们在编辑过程一般用png作为过渡格式。

      隔行渐进显示:它支持隔行渐进显示(但是ie浏览器并不支持这个属性,但是ie会在整个图像信息完全到达的时候显示)。
         由上可以看出Jpeg是最适web上面的摄影图片和数字照相机中(android壁纸默认就是jpg的)。

3.    Png格式图片分析

         Png这种图片格式包括了许多子类,但是在实践中大致可以分为256色的png(PNG8)和全色的png(PNG24、 PNG32),你完成可以用256色的png代替gif,用全色的png代替jpeg

      透明性:Png是完全支持alpha透明的(透明,半透明,不透明)。

      动画:它不支持动画

      无损耗性:png是一种无损耗的图像格式,这也意味着你可以对png图片做任何操作也不会使  得图像质量产生损耗。这也使得png可以作为jpeg编辑的过渡格式水平扫描像GIF一样,png也是水平扫描的,这样意味着水平重复颜色比垂直重复颜色的图片更小。

      间隔渐进显示:它支持间隔渐进显示,但是会造成图片大小变得更大

      其它图片格式与PNG比较:众所周知GIF适合图形,JPEG适合照片,PNG系列两种都适合。

A.       相比GIF:PNG 8除了不支持动画外,PNG8有GIF所有的特点,但是比GIF更加具有优势的是它支持alpha透明和更优的压缩。所以,大多数情况下,你都应该用 PNG8不是GIF(除了非常小的图片GIF会有更好的压缩外)。

B.       相比JPEG:JPEG比全色PNG具有更加好的压缩,因此也使得JPEG适合照片,但是编辑JPEG过程中容易造成质量的损失,所以全色PNG 适合作为编辑JPEG的过渡格式。

 

Photoshop制图几个概念:

1.    位深&通道

         在photoshop里,点击图像,模式然后可以选择制图的通道位深。8位、16位、32位有啥区别?和我们常说的24、32位图像是一个概念么?

A.       先说第一个,这里位表示的是红绿蓝三基色分别有2的N(8、16、32)次方个强度。位数越宽,那么它能表示的颜色也就越多,越真实。当然图片的容量就会越大,对图片处理起来需要的时间就越长。还有一个就是所有photoshop内置滤镜都支持8位通道,16、32位通道有的滤镜是不支持的,尤其是第三方外挂的。

B.       第二问的答案当然是否定的。我们可以用三基色来组成任意一种特定的颜色。Photoshop里面的位深指的是基色,我们常说的32位图像指的是特定的一种颜色。我们常见的8位通道RGB图像,3个通道共24位,即一张24位RGB图像里可表现大约1670万种颜色。ARGB就是在原来真彩色的基础上加一个alpha通道,使图像具备可透明性,这样就组成了我们常说的32位图。至于16、32位深一般只在专业领域可能会用到,原理一样,需要了解的,自己算下就ok;

2.    加噪点

         这是一种很凑合的做法,原理就是24位带渐变的真彩图以16位的增强色显示就会出现一圈圈光晕一样的轮廓失真。加入微小噪点,降低图片的清晰度,反而会让光晕失真均衡,从而感官上有一定改善。操作就是点滤镜,杂色,添加杂色,数值最好不超过1.5.

3.    储存为web和设备使用格式

         Photoshop里面专门对web和移动设备进行了相关的适配兼容,原因是像nokia大多的功能机都只支持增强色,所以在这个模式下可以输出相适应的图片资源。Android作为最优秀的移动系统之一,当然完全支持最高的规格,但不排除做一款定位低端,为了节约成本,把设备做成增强色。

      

Anroid系统对位宽的支持:

正如上面所说,Android系统对主流图片支援格式都提供良好的支持。源码中分别做了以下定义:

?  ALPHA_8:数值为8,图形参数由一个字节来表示, 是8位的位图

?  ARGB_4444:4+4+4+4=16,图形的参数由两个字节来表示,是16位的位图.

?  ARGB_8888:8+8+8+8=32,图形的参数由四个字节来表示, 是32位的位图.

?  RGB_565:5+6+5=16,图形的参数由两个字节来表示, 是16位的位图.

 

ALPHA_8,ARGB_4444,ARGB_8888都是透明的位图,也就是字母A代表Alpha.

ARGB_4444:意味着有四个参数,即A,R,G,B,每一个参数由4bit表示.

ARGB_8888:意味着有四个参数,即A,R,G,B,每一个参数由8bit来表示.

RGB_565:意味着有三个参数,R,G,B,三个参数分别占5bit,6bit,5bit.

Android系统2.2以前的图片默认格式是RGB_565模式,这时候显示真彩图片资源就会产生失真现象,尤其是带了渐变效果;2.3内核升级后,对图片解析默认的模式变成ARGB_8888,真彩图片资源的支持有很大提升。

© 著作权归作者所有

今日竹石
粉丝 41
博文 227
码字总数 181312
作品 0
朝阳
程序员
私信 提问
Android ImageView图片自适应

Android ImageView图片自适应 (2011-12-07 11:28:25) 转载▼ 网络上下载下来的图片自适应:android:adjustViewBounds="true"(其详细解释在下面) <ImageView android:id="@+id/dynamicitemi......

Jonson
2013/12/06
0
0
Android ImageView图片自适应

网络上下载下来的图片自适应:android:adjustViewBounds="true"(其详细解释在下面) <ImageView android:id="@+id/dynamicitemimage" android:layoutwidth="wrapcontent" android:layouthe......

Jonson
2014/05/06
0
0
一起学Android之ToggleButton和Switch

本文以一个简单的小例子,简述在Android开发中ToggleButton(开关按钮)和Switch(开关)的简单使用,仅供学习分享使用。 概述 ToggleButton是一个有两种状态(checked/unchecked)的按钮,经...

Alan.hsiang
01/13
0
0
android中不同手机分辨率适配问题

在项目开发的过程中,同一个布局对应不同的手机会显示出不同的效果。导致这个现象产生的原因是不同手机的分辨率不同。在android sdk提供的帮助文档中,我们可以看到各种手机的分辨率和对应的...

xubohui
2012/10/29
0
0
用好Android图片资源,打造更精致的APP!

前言 由于android系统的开放性,以及IOS的相对封闭。第三方设备想要使用苹果的OS,目前来说是不可能。所以,各厂商纷纷的投入了android的怀抱, android阵营也越来越强大,如今移动操作系统也...

力谱宿云
2016/11/03
554
1

没有更多内容

加载失败,请刷新页面

加载更多

IT兄弟连 Java语法教程 Java语言的跨平台特性

什么是平台 Java是可以跨平台的编程语言,那么首先我们需要知道什么是平台,通常我们把CPU与操作系统的整体称为平台。 CPU大家都知道,是计算机的大脑,它既负责思维运算,又负责计算机中各种...

老码农的一亩三分地
3分钟前
0
0
http传值问题

这两天遇到一个问题 ,与一个渠道联调接口,http请求,展示ptf 的需求,服务方以一个二进制的方式返回。 当时我们在一开始开发的时候,我们按照读取文件的方式处理,本地存一个ptf 的方式 ,...

鬼才王
12分钟前
0
0
【面试】如果你这样回答“什么是线程安全”,面试官都会对你刮目相看

不是线程的安全 面试官问:“什么是线程安全”,如果你不能很好的回答,那就请往下看吧。 论语中有句话叫“学而优则仕”,相信很多人都觉得是“学习好了可以做官”。然而,这样理解却是错的。...

中关村的老男孩
12分钟前
4
0
5.01- Druid数据源配置

1、配置项 配置 缺省值 说明 name 无 配置这个属性的意义在于,如果存在多个数据源,监控的时候 可以通过名字来区分开来。如果没有配置,将会生成一个名字, 格式是:"DataSource-" + Syste...

静以修身2025
17分钟前
0
0
itop4412开发板-Linux内核的编译

本篇文章基于itop4412开发板 5.3.2.1源码目录 Linux 内核源码在光盘“06_源码_uboot 和 kernel”目录下,如下图所示。 5.3.2.2 编译器 内核的编译器和 uboot 的编译器一样,参考“5.3.1.2 编...

书白
21分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部