Android资源限定符命名规则

本文详细介绍了Android应用资源适配的原因、限定符的优先级和命名规则,以及资源淘汰规则。通过理解这些规则,开发者可以更有效地进行多分辨率和屏幕密度的适配工作,包括drawable、layout和dimens资源的处理。文章还提供了适配策略和一些实用的小技巧,如使用DisplayMetrics查看屏幕信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传送门:Google官方适配教程

吐槽

Android开发者真的挺苦逼的,不仅要适配常规分辨率,如 480x854、720x1280、1080x1920、1440x2560,还要适配各种奇葩分辨率,如 720x1440、1080x2160...

适配原因

不同分辨率和屏幕像素密度的手机,其宽高换算成dp后,有可能是不同的。如下表(Google规定:在160dpi的手机上,1dp = 1px):

注:dpi 跟 ppi 一个意思,都表示每英寸多少个像素点

分辨率(像素) 像素密度(dpi) 宽(dp) 高(dp)
480x854 240 320 569.3
1080x1920 480 360 640

所以在1080x1920、480ppi的手机上,可以完整显示330dp宽的按钮,而在480x854、240ppi的手机上,却显示不下。如何解决呢?Google机智地设计了一套资源限定符,只需新建一个values-hdpi文件夹,再建一个dimens.xml(名字随意),添加一句:

<dimen name="your_widget_name">300dp</dimen>

按钮宽度便会自动调整为300dp。

限定符优先级

限定符 示例 含义 优先级 since version
MCC 和 MNC 示例:
mcc310 mcc310-mnc004 mcc208-mnc00
...
移动国家代码 (MCC),(可选)后跟设备 SIM 卡中的移动网络代码 (MNC)。

例如,mcc310 是指美国的任一运营商,mcc310-mnc004 是指美国的 Verizon 公司,mcc208-mnc00 是指法国的 Orange 公司。
API 1
语言和区域 示例:
en
fr
en-rUS
...
语言通过由两个字母组成的 ISO 639-1 语言代码定义,可以选择后跟两个字母组成的 ISO 3166-1-alpha-2 区域码(前带小写字母“r”)。

这些代码不区分大小写;r前缀用于区分区域码。不能单独指定区域。
API 1
布局
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值