联系
我们
投稿
反馈
评论 返回
顶部

内容字号: 默认 大号超大号

段落设置: 段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

Android应用如何支持屏幕多尺寸多分辨率问题

2017-02-24 12:01 出处:互联网 人气: 评论(
半月谈评论 苗音组合 第一滴泪 民兵葛2蛋全集 名录屋 命案13宗之渴望城市 命运长夜之白袍起舞 摩尔庄园qq小芝麻 摩尔庄园拉姆进化论 魔都裸拍事件 魔卡杀阵

作为Android应用程序开发者都知道android是一个“碎片化”的世界。多种系统版本、多种尺寸、多种分辨率、多种机型,还有不同的厂商定制的不同ROM,你开发的应用会在不可预期的手机上报错。这给开发适配带来不小的难度。这篇文章会告诉我们怎么解决这个问题。

1、Android碎片化

1.1、android系统版本

Android更新较大的版本如下:

上面只有当前可用版本,Android L作为开发者版本没有出现其中,未来会有更多的版本。下图给出Android各个版本的占有率,这个是googleplay统计的近期数据。googleplay只支持2.2以上的手机,所以统计中缺少2.2以下版本。

1.2、Android中不同尺寸、不同分辨率市场占有情况

3、Android不同机型

这是OpenSignal在2013年的调查调查结果,Android系统设备覆盖了11,868不同机型,现在肯定会更多。

2、基本概念

Android“碎片化”如此严重,那么我们怎么解决Android应用适配问题呢。Android官方文档给出了解决方案,这篇文章也是参考总结的官方文档。

解决Android“碎片化”化问题,我们需要了解一些基础概念。

屏幕大小

根据屏幕对角线实际测量的物理大小(android已经根据屏幕大小分为四类small, normal, large, extra large),具体怎么划分的下面会提到。

屏幕密度

屏幕物理区域一个单位(一般用英寸)的像素数量,一般简称dpi(dots per inch,每英寸上的点数,记住DPI这个概念很重要)屏幕密度也分为四类 low, medium, high, extra high,他们的比例关系是 0.75:1:1.5:2,具体的值为120:160:240:320。

屏幕方向

屏幕方向分为横屏和竖屏。

分辨率

一个物理屏幕上像素点的总数。一般我们的App不会直接使用分辨率,而是使用密度和屏幕大小。

独立像素单位(Density-independent pixel (dp))

一个虚拟的单位,用来决定UI布局的。用来表述布局的尺寸或者位置。

dp是一个与屏幕密度有关系的单位,dp与像素的换算关系为 px = dp * (dpi / 160)。例如在240密度(dpi)的屏幕上一个dp等于1.5个像素。以后我们应该尽量使用dp单位布局,不要使用像素单位。这样会使你的app屏幕兼容性更好

Android1.6开始就支持多屏幕和密度了,这都是为了更好的用户体验,为了简化我们多屏幕的开发,当然这要声明或者大于4。android提供了一组范围让我们使用,见下图:

3、Android中资源配置

Android工程中经常看到下图的资源文件配置,一般会包含animator、anim、color、drawable、layout、menu、raw、value、xml等。

命名规则是-。

:资源文件名

:特定条件下可以使用这种资源

config_qualifier可以使用多种:

MCC and MNC

Language and region



Layout Direction ldrtlldltr


Added in API level 17.

smallestWidth


Available width

Available height

Screen size smallnormallargexlarge




Screen aspect longnotlong

Screen orientation portland

UI mode cardesktelevisionappliancewatch


Night mode nightnotnight

Screen pixel density (dpi) ldpimdpihdpixhdpinodpitvdpi



Touchscreen type notouchfinger

Keyboard availability keysexposedkeyshiddenkeyssoft


Primary text input method nokeysqwerty12key

Navigation key availability navexposednavhidden

Primary non-touch navigation method nonavdpadtrackballwheel

Platform Version (API level)

更多详情见请继续阅读下一页的精彩内容:

linux

分享给小伙伴们:
本文标签:

更多文章

相关文章

  • 蛮便宜
  • 抠门网
  • Copyright © 2002-2014 版权所有