首页 > 系统 > Android > 正文

关于Android中drawable必知的一些规则

2020-07-28 14:07:21
字体:
来源:转载
供稿:网友

前言

一入 Android 深似海,相信很多 Android 开发者深有体会,Android 系统版本的碎片化,Android 硬件设备的多样性,第三方 Rom 的不确定因素。现在想开发一个合格的商业化 App 真的不容易,先不说别的,应用的兼容性就是一项技术和耐心的双重考验,想完美适配各种情况可以说是不可能的,往往都是在人力和适配率之间寻找平衡,今天要说的 drawable 就是需要适配的一个重要角色。

配置限定符

对于不同的屏幕密度、不同的设备方向,不同的语言和区域,都会涉及到备选 drawable 资源,在运行时,Android 会检测当前设备配置并根据具体规则(后面会提到)为应用加载合适的资源。下面是可以使用的配置限定符,需要说明的是这些配置限定符不仅对 drawable 有效,对其他资源类型(如:layout 等)也有效:

     移动国家代码 (MCC):mcc310, mcc310-mnc004, mcc208-mnc00

     语言和区域:en, fr, en-rUS 等等

     布局方向:ldrtl(从右到左)ldltr(从左到右)

     smallestWidth:sw<N>dp 如:sw320dp, sw600dp, sw720dp 等等,屏幕可用高度和宽度的最小尺寸,屏幕的“最小可能尺寸”。

     可用宽度:w<N>dp 如:w720dp, w1024dp 等等,指定资源应该使用的最小可用屏幕宽度,以 dp 为单位,由 <N> 值定义。在横向和纵向之间切换时,为了匹配当前实际宽度,此配置值也会随之发生变化。

     可用高度:h<N>dp 如:h720dp, h1024dp 等等,指定资源应该使用的最小可用屏幕高度,以dp为单位,由 <N> 值定义。 在横向和纵向之间切换时,为了匹配当前实际高度,此配置值也会随之发生变化。

     屏幕尺寸:small, normal, large, xlarge

     屏幕纵横比:long 宽屏,如 WQVGA、WVGA、FWVGA;notlong 非宽屏,如 QVGA、HVGA 和 VGA

     屏幕方向:port 设备处于纵向(垂直),land 设备处于横向(水平)

     UI 模式:car, desk, television, appliance, watch

     夜间模式:night 夜间,nontight 白天

     屏幕像素密度:ldpi, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi, nodpi, tvdpi

     触摸屏类型:notouch, finger

     键盘可用性:keysexposed, keyshidden, keyssoft

     主要文本输入法:nokeys, qwerty, 12key

     导航键可用性:navexposed 导航键可供用户使用,navhidden 导航键不可用

     主要非触摸导航方法:nonav, dpad, trackball, wheel

     平台版本(API 级别):v3, v4, v7 等等,如 v1 对应于 API 级别 1,v4 对应于 API 级别 4

如果你认真研究下每个配置限定符,你就会体会到:想完美适配各种情况可以说是不可能的,其实我们平时最常用的也是基本必须要用的就是屏幕像素密度,这里有必要详细的说一下该参数:

      ldpi:低密度屏幕;约为 120dpi。

      mdpi:中等密度(传统 HVGA)屏幕;约为 160dpi。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表