图片格式:
BMP:作为一种与硬件设备无关的图像文件格式,得到广泛的应用,没有采用任何压缩算法,当然也没有任何失真。BMP根据图像深度不同,有 1bit、4bit、8bit、24bit等不同的位深,在存储数据时,图像的扫描方式按从左到右,从上到下的顺序进行。总结:不压缩,文件大,不同颜色的图片尺寸一样,大小一样;(像箱子,不管里面装什么都一样大)
PNG: 总结:无损压缩,不同颜色的图片尺寸一样,大小不一样;(像塑料袋,袋子里装的东西少体积就会减少)
JPG:(Joint Photographic Experts Group)作为一种目前被广泛采用的图像格式,采用了有损压缩算法,通过去除冗余信息,可以在获得极高压缩率的同时展现出丰富生动的图像。总结:有损压缩,不同颜色的图片尺寸一样,大小不一样;(像网眼袋,不仅装进的东西少体积会减少,而且里面的小东西还会漏走)
图片所含信息量越多,体积越大,能压缩的空间就越小
ColorMatrix:
通过颜色矩阵 ColorMatrix 修改了原图像的 RGBA 值,从而达到了改变图片颜色效果的目的。
PorterDuff:
PorterDuff(图像混合概念由Tomas Porter和Tom Duff提出)
BitmapFactory:
BitmapFactory类对开发者从文件、流、字节组、资源文件中解码图像提供了支持,常用的方法包括:
decodeByteArray(byte[] data, int offset, int length) //从字节码中解码
decodeFile(String pathName) //从文件中解码
decodeStream(InputStream is) //从输入流中解码
decodeResource(Resource res, int id) // 从资源文件中解码
动画的处理:
Android可以为Activity、对话框、输入法、子菜单、墙纸等设置动画效果,相关的配置文件实现位于frameworks/base/core/res/res/anim中。
Android动画有两种实现方式:
补间动画(Tween Animation):通过对场景中的对象不断的做图像变换(透明度、平移、缩放、旋转)产生动画效果。提供了AlphaAnimation、TranslateAnimation、ScaleAnimation、RotateAnimation四个类支持。Android的控件动画效果均是基于补间动画实现的。最常用的控件动画是基于ViewAnimation类进行的,其子类包含ViewFlipper、ViewSwitcher、ImageSwitcher、TextSwitcher等。动画的进度通过插补器(interpolator)控制。
帧动画(Frame Animation):按顺序播放一组图像。帧动画有两个比较重要的属性需要注意,一个是android:oneshot属性,用户设置播放模式,是单次播放还是循环播放;一个是android:duration属性,用于设置每帧的持续时间,单位为毫秒。帧动画的资源文件位于res/anim文件夹下。android利用XML资源文件和AnimationDrawable来协同工作。注意:AnimationDrawable的start()方法不能再Activity的onCreate方法中调用,这是因为此时图像资源还没有完全加载。如果希望在Activity启动后立即开始动画,可以在Activity的onWindowFocusChanged()方法中执行start()方法。帧动画是应用层中最常用的动画效果。
属性动画(Property Animation):在Android3.0中引入,为开发者提供了更强的自定义动画的能力,在游戏开发中较常见。在Android中,目前定义了三种类型的演进器:ArgbEvaluator、FloatEvaluator、IntEvaluator。如果用于动画的属性不是color、float、int类型的,开发者可以扩展TypeEvaluator接口来计算目标对象的属性变化。