一、Android系统是可以支持不同分辨率的,这一点毋庸置疑,但是它无法做到支持任意的分辨率
如果想要搭建一个支持多种分辨率的Android应用程序,一般的做法是这样的:
首先,按照HVGA(分辨率480×320左右,通常使用160ppi——一英寸中包含160个像素点)分辨率构建软件UI,其中使用的图片通常存放在开发目录下的drawable-mdpi文件夹中,mdpi表示中等程度的dpi分辨率。
当设计UI可以满足需求之后,将该文件夹中的图片进行缩放,对于QVGA类屏幕(分辨率320×240左右,通常使用120ppi)需要将mdpi图片缩小75%放入drawable-ldpi文件夹中以满足UI要求,对于WVGA类屏幕(分辨率800×480左右,通常使用240ppi)需要将mdpi图片放大150%放入drawable-hdpi文件夹中以满足UI要求。
运行Android系统的手机在运行时会根据屏幕情况,自动加载对应dpi目录中的图片,从而满足对不同分辨率的适应要求。
可见,Android SDK仅提供了三组不同的UI图片存放目录,而最高分辨率仅支持到240ppi。关键在于M9和IPhone4的屏幕细腻程度达到了320ppi以上,也就是说,在SDK中即便是用最大分辨率的图片依然无法满足屏幕要求。

二、Android系统支持一种称为9patch格式图片,即将图片分割为9个部分,其中中间部分可以通过像素复制的方式进行图像拉伸。这种图片格式对于那些需要保持图像边缘部分不变,而中间像素相似的图片拉伸需求非常管用。例如一张需要适应不同分辨率情况下的按钮背景。但是这种图片的使用是有局限的,也就是仅适用于那些控件或屏幕区域的背景图。

以上说明解释了Android SDK如何适应多种不同的屏幕分辨率,不难发现,对于960×640分辨率的屏幕来说,开发应用程序必须重新对UI图片进行手工缩放才能满足要求。尤其是对于游戏来说,由于图片比较复杂,一般无法使用9patch方式拉伸。

可见,如果在应用中大量使用图片作为软件UI,则需要重新设计才能满足M9分辨率,如果使用图像编程接口画出来的UI,则可以在运行时通过屏幕像素密度参数来动态设定。最悲剧的就是游戏了,几乎全是使用图片。

更多相关文章

  1. Android研究院之ListView原理学习与优化总结
  2. libjpeg哈夫曼算法压缩图片
  3. 自制Gallery打开指定文件夹里的图片
  4. android利用BitMap获得图片的像素数据
  5. Android系统移植与调试之------->如何修改开机动画的两种方式剖
  6. Android(安卓)使用intent对Bitmap的处理(拍照、裁剪、从图库选择
  7. Android图片内存优化的几点心得
  8. Android(安卓)实现头像上传功能
  9. react-native-image-picker图片上传

随机推荐

  1. Android使用Material Design自带Coordina
  2. android 一个应用去获取另一个应用assets
  3. android attr 属性 类型
  4. Android(安卓)-- is 32-bit instead of 6
  5. Android(安卓)判断是开发debug模式,还是发
  6. wifi打开Android(安卓)ADB调试
  7. android系统服务大全
  8. 《Android(安卓)9编程通俗演义》代码下载
  9. Jazelle DBX对Android是无用的
  10. Android提高二十一篇