浅谈android手机多屏幕分辨率问题及处理方法

2016-02-05 17:31杨碎明薄博文
山西青年 2016年18期
关键词:开发人员开源应用程序

杨碎明 薄博文

西安交通工程学院,陕西 西安 710300



浅谈android手机多屏幕分辨率问题及处理方法

杨碎明*薄博文*

西安交通工程学院,陕西西安710300

由于Android平台的开源、免费等特点,其以极快的速度风靡全球移动终端市场,但是也给开发人员带来了一个很大的问题,那就是各种移动终端分辨率不同,开发的软件要想在所有Android平台的移动终端上运行,这就需要用到多屏幕分辨率自适应的方法了。本文将介绍在开发中经常使用的几种自适应的方式,在实际开发中,开发人员可以根据实际情况选择最合适的方式.。

Android移动终端分辨率;处理方法

一、Android开源带来的机遇与问题

在Google中输入Android,可以获得14亿条以上的搜索结果,大部分是关于技术的文章、新软件的发布、市场占有的提升等振奋人心的信息。打开招聘网站,Android程序员需求与日俱增,同时薪酬也比同类开发人员高出不少。再看看身边,搭载Android系统的移动终端已经是随处可见。

(一)Android开源带来的机遇

Android平台的开源优势,无界限的应用程序、应用程序可以并行运行、应用程序可以轻松地嵌入网络。不管是给用户还是给应用程序开发人员,都带来了全新的体验。经过短短的3年多时间,Android手机的市场占有率已超过了nokia等老牌智能手机,取得了可喜的成绩。Android具有开源性,为开发者提供了良好的开发环境。同时随着Android的到来,为毕业大学生以及在IT其他行业的开发人员提供了非常好的机遇。

(二)Android开源带来的问题

Android与iphone的ios最大不同之处正在于Android是开源的、免费的,而ios则实施垄断。因此,在苹果ios开发的好处是不需要考虑手机的屏幕分辨率。这就为开发人员在带来机遇的同时带来了很多问题,怎样才能一次开发,所有的手机全部适用呢,而不必花费更多的时间去开发专门针对某个分辨率的版本。只有解决这个问题,开发出的程序才有普及的可能。

二、相关名字解释

(一)屏幕尺寸(Screen size)

屏幕尺寸是指显示器屏幕对角线的尺寸,一般用英寸来表示,可测量显示器对角线长度转换为英寸即可(1英寸=2.54厘米)。

(二)分辨率(Resolution)

分辨率就是指屏幕上的点。在同样大小的屏幕里,组成图形的点越多,点就会越小,越小就会看起来越细腻,很多屏幕看起来很粗糙,有颗粒感,就是因为点少的原因。所以数字越高越清晰。例如320*480 320就是横向排列的点,480是纵向的,因为屏幕是长方形,长就是纵向,宽是横向。

(三)屏幕密度(Density)

是指这个屏幕在单位长度上能显示的像素点数,也就是一英寸上能显示的像素点数,计算方式就是分辨率除以物理尺寸。屏幕密度能反应设备的清晰程度。

三、几种自适应屏幕的方式

分辨率的问题可以说是困扰Android开发人员的第一大难题,许多的前辈都针对这个问题作出了一些解决方案,大致分为3种:只要求全屏,不考虑变形问题;只考虑宽度缩放,上下留白,并且要求不可以发生变形;只考虑高度缩放,左右留白,并且要求不可以发生变形。

(一)只求全屏,不考虑变形

有一少部分应用程序或游戏,是不用考虑变形问题,只发生一些小小的变形是不会对用户产生影响的,但是其都有一个共同的特点,就是要求全屏显示。既然只是要求全屏显示,而不考虑变形问题,那么只要把图片等的宽度和高度分别按不同比例进行缩放,保证其充满屏幕即可。

(二)只考虑宽度缩放,上下留白,要求不变形

绝大多数的应用程序或游戏,是不允许变形的,但是还要求在屏幕上尽量的最大化,这就不能采用上面的方法了。假如要求宽度充满屏幕,那么只要高度缩放的时候也按照宽度的缩放比进行缩放即可,如播放影片的时候大部分影片的上下都有黑边,这就是所谓的上下留白了。

(三)只考虑高度缩放,左右留白,要求不变形

还有一些不允许发生变形的应用程序是要求高度充满屏幕的,同样只要在宽度缩放的时候也按照高度的缩放比进行缩放即可,在用这种方式进行缩放时,还有可能导致图片缩放后显示不全。

四、如何适配不同的屏幕

(一)屏幕分辨率和清晰度关系密切,也就是说屏幕分辨率越高,清晰度也越高,即其密度也应该越大,否则会看起来很不清楚,比如4寸的屏幕如果只有100个像素,这就像近距离看投影仪,或者看电影一样,非常模糊和不清晰。所以,Android主要是以屏幕密度来区分不同的设备:

高密度:hdpi(High dots per inch)

中等密度:mdpi(Medium dots per inch)

低密度:ldpi(Low dots per inch)

并且布局中强烈推荐使用密度无关单位dip或dp,来作为长度或者宽度的单位。

对于一般性的app应用程序,写一个布局文件在layout中,为三种密度准备图片drawable-hdpi,drawable-mdpi,drawable-ldpi,就足以应对80%的设备。

res/

drawable-hdpi/

ic_launcher.png

drawable-mdpi/

ic_launcher.png

drawable-ldpi/

ic_launcher.png

layout/

main.xml

resources.html

(二)采用自定义CustomView 类开发

CustomView 类自定义继承View

public class CustomView extets View{//..}

在完成View控件开发后,再修改 /res/layout/main.xml

最后在主控类Activity 启动时获取手机或模拟器的分辨率,并把屏幕的高度和宽度设置为当前手机的分辨率。

public class sample9_5 extends Activity{//..}

五、结语

本文介绍了android 开源所带来的最大问题及解决方案,这对一个应用程序的生存周期来说是至关重要的,Android app多以dip或dp为单位,所以就必须注意不同密度上它们的对应关系。这样就更方便用dip来定义图片的长度和宽度。最后介绍如何开发自定义View,通过继承View类,来实现想要效果,方便开发。

[1]吴亚峰,于复兴编著.Android应用开发完全手册.人民邮电出版社.

[2]关朝辉,郭荷清,高伟.基于群决策的多Agent资源管理模型.《计算机应用与软件》,2009.

[3]Android实战技术:用Dimension解决多屏幕适配的问题-博客-云.

杨碎明(1971-),男,汉族,陕西宝鸡人,工程硕士,西安交通工程学院,软件设计师,研究方向:android手机开发技术;薄博文(1981-),女,汉族,陕西西安人,西安交通工程学院。

TN873

A

1006-0049-(2016)18-0245-01

猜你喜欢
开发人员开源应用程序
删除Win10中自带的应用程序
五毛钱能买多少头牛
2019开源杰出贡献奖
Semtech发布LoRa Basics 以加速物联网应用
谷歌禁止加密货币应用程序
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
后悔了?教你隐藏开发人员选项
三星电子将开设应用程序下载商店
三星SMI扩展Java论坛 开发人员可用母语