Android 开发中的微技巧和小知识

来源:互联网 发布:秋冬防晒 知乎 编辑:程序博客网 时间:2024/05/29 19:37

平时的Android 开发有很多我们需要注意的细节和技巧,通过这些细节,我们可以进一步完善我们的项目,或者提升我们的开发经验,而这些微技巧和小知识都是些有多年开发经验的总结,在此就感谢他们的无私的分享精神,前人栽树后人乘凉。此文的标题“微技巧”3个字,也是致敬郭大神微笑,所以本文的内容皆收集于网络,能注明出处的,我会尽量注意的。文章内容会不断更新.....

1.App为什么不建议使用jpg图片?

        相信很多人从开始开发android时起就发现了,android的图片素材基本上都是png图片,当我们使用不同格式的图片时,老鸟们第一次看到,就会提醒你,尽量使用png图片,菜鸟也就没问为什么,“唯命是从”,比如我 =  =!,今天看到一篇文章刚好写到这个,于是我就先记下来了,感谢王月半子的分享。

        App为什么不建议使用jpg图片,因为同样的尺寸,png格式的图片要比jpg图片大很多。(png中有透明通道,而jpg中没有,此外png是无损压缩的,而jpg是有损压缩的,所以png中存储的信息会很多,体积自然就大了)。 

我们从三方面来谈谈这个问题。 
   1、从内存角度 
不管是png还是jpg文件,他们都说的是文件存储范畴的事情,它们只存在于文件系统,而非内存或者显存。而前面也说过了,图片占有的内存只与图片长度、图片宽度以及单位像素占用的字节数有关。所以jpg 格式的图片与 png 格式的图片在内存当中不应该有什么不同。(这里变相的也解释了:图片在硬盘的大小和内存中的大小不一样)。 
Q:那既然内存占有不会有什么不同,那为什么开发者喜欢用png的图片呢? 
这个问题只能从另一个角度来说。 
   2、解码速度 
png是无损压缩的,而jpg是有损压缩的。所以png图片的解码速度明显会高于jpg图片,所以png虽然体积比jpg大但是加载速度却要快一些。 
Q:那么png图片有这种好处,那么就把App中所有的图片都换成png的吧? 
这样其实也不科学。为什么呢,再换一个角度来分析 
    3、App包的大小以及流量的角度。 
前面说过同样的尺寸,png格式的图片要比jpg图片大很多。那打包出来的App自然很大,用户的流量就会耗费很大。同时如果App中所有的图片都换成png,那些下载的图片(也全部变成png格式的)同样又会有流量的问题。

综上所述,android中使用png和jpg图片各有优劣,我曾在网上看过有人为了减小App的大小,将所有的png图都换成了jpg图片。当然这也不是不可以,看你追求的是什么。

2.Android中ImageView的ScaleType属性

该属性用来表示imageview显示图片的方式,一共有8种取值: 
1. ScaleType.CENTER:图片大小为原始大小,如果图片大小大于ImageView控件,则截取图片中间部分,若小于,则直接将图片居中显示。 
2. ScaleType.CENTER_CROP:将图片等比例缩放,让图像的短边与ImageView的边长度相同,即不能留有空白,缩放后截取中间部分进行显示。 
3. ScaleType.CENTER_INSIDE:将图片大小大于ImageView的图片进行等比例缩小,直到整幅图能够居中显示在ImageView中,小于ImageView的图片不变,直接居中显示。 
4. ScaleType.FIT_CENTER:ImageView的默认状态,大图等比例缩小,使整幅图能够居中显示在ImageView中,小图等比例放大,同样要整体居中显示在ImageView中。 
5. ScaleType.FIT_END:缩放方式同FIT_CENTER,只是将图片显示在右方或下方,而不是居中。 
6. ScaleType.FIT_START:缩放方式同FIT_CENTER,只是将图片显示在左方或上方,而不是居中。 
7. ScaleType.FIT_XY:将图片非等比例缩放到大小与ImageView相同。 
8. ScaleType.MATRIX:是根据一个3x3的矩阵对其中图片进行缩放。 
   注意:  ImageView的默认状态为ScaleType.FIT_CENTER











---------------------最后编辑时间为2016-5-20


如果对以上文章内容有疑惑,还请留言指出,共同进步!

0 0
原创粉丝点击