屏幕支持概览

屏幕支持概览

本节概述 Android 对多种屏幕的支持,包括: 本文档和 API 中所用术语和概述的简介、 系统支持的屏幕配置摘要,以及 API 和基本 屏幕兼容性功能的概述。
术语和概念

屏幕尺寸(Screen size)

按屏幕对角测量的实际物理尺寸,inch。

为简便起见,Android 将所有实际屏幕尺寸分组为四种通用尺寸:小(small)、 正常(normal)、大(large)和超大(xlarge)。

屏幕密度(Screen density)

屏幕物理区域中的像素量;通常称为 dpi(每英寸点数)。例如, 与“normal”或“high”密度屏幕相比,“low”密度屏幕在给定物理区域的像素较少。

为简便起见,Android 将所有屏幕密度分组为六种通用密度: 低(ldpi)、中(mdpi)、高(hdpi)、超高(xhdpi)、超超高(xxhdpi)和超超超高(xxxhdpi)。

六种通用密度之间的 3:4:6:8:12:16 缩放比率(0.75,1,1.5,2,3,4)

注:dpi,印刷用单位,指打印精度,打印机在每英寸可打印的墨滴点数

ppi=ResolutionWidth2+ResolutionHeight2÷ScreenSize

方向(Orientation)

从用户视角看屏幕的方向,即横屏(land)还是竖屏(port),分别表示屏幕的纵横比(long/notlong)是宽还是高。请注意,不仅不同的设备默认以不同的方向操作,而且方向在运行时可随着用户旋转设备而改变。

分辨率(Resolution)

屏幕上物理像素(Physical pixel)的总数。添加对多种屏幕的支持时, 应用不会直接使用分辨率;而只应关注通用尺寸和密度组指定的屏幕尺寸及密度。

密度无关像素 (dp/dip) (Density-independent pixel)

在定义 UI 布局时应使用的虚拟像素单位,用于以密度无关方式表示布局维度或位置。

密度无关像素等于 160 dpi 屏幕上的一个物理像素,这是 系统为“mdpi”密度屏幕假设的基线密度。在运行时,系统 根据使用中屏幕的实际密度按需要以透明方式处理 dp 单位的任何缩放 。dp 单位转换为屏幕像素很简单: px = dp * (dpi / 160)。 例如,在 240 dpi 屏幕上,1 dp 等于 1.5 物理像素。在定义应用的 UI 时应始终使用 dp 单位 ,以确保在不同密度的屏幕上正常显示 UI。

六种通用的密度:

注:从 Android 3.2(API 级别 13)开始,这些尺寸组 已弃用,而采用根据可用屏幕宽度管理屏幕尺寸的 新技术。

  • ldpi(低)~120dpi
  • mdpi(中)~160dpi (HVGA)
  • hdpi(高)~240dpi
  • xhdpi(超高)~320dpi
  • xxhdpi(超超高)~480dpi
  • xxxhdpi(超超超高)~640dpi

声明适用于 Android 3.2 的平板电脑布局 :配置示例

为帮助您针对不同的设备类型确定某些设计,下面提供了一些 常见的屏幕宽度值:

  • 320dp:常见手机屏幕(240x320 ldpi、320x480 mdpi、480x800 hdpi 等)。
  • 480dp:中间平板电脑,例如 Streak (480x800 mdpi)。
  • 600dp:7 英寸平板电脑 (600x1024 mdpi)。
  • 720dp:10 英寸平板电脑(720x1280 mdpi、800x1280 mdpi 等)。

下面是有关如何确保应用在 不同屏幕上正常显示的快速检查清单:

  • 在 XML 布局文件中指定尺寸时使用 wrap_content、match_parent 或 dp 单位 。
  • 不要在应用代码中使用硬编码的像素值
  • 不要使用 AbsoluteLayout(已弃用)
  • 为不同屏幕密度提供替代位图可绘制对象

屏幕宽度

表. 所示为 Android SDK 中可用的各种模拟器皮肤,可用 以模拟某些最常见的屏幕配置。
表. Android SDK(粗体表示)及其他 代表性解决方案中模拟器皮肤提供的 各种屏幕配置

屏幕类型低密度(120),ldpi中密度(160),mdpi高密度(240),hdpi超高密度(320),xhdpi
小屏幕QVGA (240x320)480x640
正常屏幕WQVGA400 (240x400)
WQVGA432 (240x432)
HVGA (320x480)WVGA800 (480x800)
WVGA854 (480x854)
600x1024
640x960
大屏幕WVGA800** (480x800)
WVGA854** (480x854)
WVGA800* (480x800)
WVGA854* (480x854)
600x1024
超大屏幕1024x600WXGA (1280x800)†
1024x768
1280x768
1536x1152
1920x1152
1920x1200
2048x1536
2560x1536
2560x1600

* 要模拟此配置,在 创建使用 WVGA800 或 WVGA854 皮肤的 AVD 时请指定自定义密度 160。

** 要模拟此配置,在创建 使用 WVGA800 或 WVGA854 皮肤的 AVD 时请指定自定义密度 120。

† 此皮肤可用于 Android 3.0 平台

补充

现实中我们要考虑的:

  • 物理像素(Physical pixel),px
  • 逻辑像素(Logic point),pt
  • 屏幕密度(Screen density),dpi
  • 密度无关像素/设备独立像素(Density-independent pixel) (dp/dip),基于屏幕密度,dp
  • 设备像素比(device pixel ratio) = 物理像素 / 设备独立像素,
    js:window.devicePixelRatio, css:window.devicePixelRatiowindow.devicePixelRatiowindow.devicePixelRatio
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值