多說幾句:

之前由於沒有仔細研究適配,一直認為android不是有dpi么,只要保證mdpi等等的值設置好且正確就可以做到適配。但是在近期的項目中,需要適配平板和手機。計算了平板和手機,dpi都是屬於xhdpi的,但是效果展示相差很大。還再納悶,不是說dp可以自己根據屏幕大小調整適配么?經過查閱資料發現:在屏幕 尺寸相差不大的情況下,dp可以使不同分辨率的設備上展示效果相似。但是在屏幕尺寸相差比較大的情況下,dp就失去了這種效果。所以需要以下的限定符來約束,采用多套布局,數值等方式來適配。

寫的挺詳細的。原作者辛苦了。但是為了方便查閱。我把重要的表格摘錄出來了。有不明白的去查看原文。

在安卓3.2之下的適配  限定符

屏幕特性

限定符

描述

屏幕尺寸

small

小屏幕

normal

基准屏幕

large

大屏幕

xlarge

超大屏幕

屏幕密度

ldpi

<=120dpi

mdpi

<= 160dpi

hdpi

<= 240dpi

xhdpi

<= 320dpi

xxhdpi

<= 480dpi

xxhdpi

<= 640dpi(只用來存放icon)

nodpi

與屏幕密度無關的資源.系統不會針對屏幕密度對其中資源進行壓縮或者拉伸

tvdpi

介於mdpi與hdpi之間,特定針對213dpi,專門為電視准備的,手機應用開發不需要關心這個密度值.

屏幕方向

land

橫向

port

縱向

屏幕寬高比

long

比標准屏幕寬高比明顯的高或者寬的這樣屏幕

notlong

和標准屏幕配置一樣的屏幕寬高比

例如:

res/layout/my_layout.xml // layout for normal screen size ("default")

res/layout-large/my_layout.xml // layout for large screen size

res/layout-xlarge/my_layout.xml // layout for extra-large screen size

res/layout-xlarge-land/my_layout.xml // layout for extra-large in landscape orientation

res/drawable-mdpi/graphic.png // bitmap for medium-density

res/drawable-hdpi/graphic.png // bitmap for high-density

res/drawable-xhdpi/graphic.png // bitmap for extra-high-density

res/drawable-xxhdpi/graphic.png // bitmap for extra-extra-high-density

res/mipmap-mdpi/my_icon.png // launcher icon for medium-density

res/mipmap-hdpi/my_icon.png // launcher icon for high-density

res/mipmap-xhdpi/my_icon.png // launcher icon for extra-high-density

res/mipmap-xxhdpi/my_icon.png // launcher icon for extra-extra-high-density

res/mipmap-xxxhdpi/my_icon.png // launcher icon for extra-extra-extra-high-density

android3.2之后引入的,目前推薦使用的;

屏幕特性

限定符

描述

最小寬度限定符

swdp例如sw600dp, sw720dp

屏幕的最小尺寸,就是屏幕可用區域的最小尺寸,是指屏幕可用高度或寬度的最小值(你可以默認是屏幕的最小寬度).你能用這個限定符確保,無論屏幕方向如何,這個限定符修飾下的布局需要的屏幕最小尺寸是Ndp.例如,如果你的布局在運行時需要的最小屏幕寬度是600dp,則你可以利用這個限定符創建布局資源目錄res/layout-sw600dp.只有當屏幕的最小寬度或最小高度是600dp時,系統才會使用這些布局文件或者資源文件.最小屏幕寬度是固定設備的特有屏幕尺寸,當屏幕方向發生變化時,設備的最小寬度值不變.設備的最小寬度值要考慮屏幕的尺寸和系統UI.例如,如果在屏幕上有一些系統持久化UI元素,則系統的最小寬度值要比實現的屏幕尺寸小一些,因為這些系統的UI元素你的應用是無法使用到的.當你使用之前的廣義限定符是,你可以定義連續的一系列限定符.用最小寬度來決定廣義屏幕尺寸是有意義的,是因為寬度是影響你UI設計的關鍵因素.UI在豎直方向上會經常滾動,但是在水平方向上往往是固定的布局.可見不論是適配手機或者平板,寬度往往都是布局的關鍵因素.因此,你需要關心你手機上的最小寬度值.

屏幕可用寬度

wdpExamples:w720pw1024p

指定資源使用時需要的最小寬度.當屏幕方向發生變化時,系統會調整這個值,使其始終為你UI顯示的寬度.這個屬性經常被用來判斷當前是否需要顯示多屏布局,因為哪怕用戶當前正在使用平板,你也可能不希望用戶在平板豎屏時顯示多個屏幕的布局樣式.這時,你就可以使用這個限定符來標明你布局需要的最小寬度

屏幕可用高度

hdpExamples:h720dph1024dpetc.

標明資源使用時需要的最小高度.當屏幕發生旋轉時,系統會自動選擇當前大的一方作為高度值.大部分應用很少需要這個限定符,因此不做過多講解

在不考慮屏幕方向只關注布局最小空間的前提下,使用sw的方式更加簡單.

例如:

res/layout/main_activity.xml #手機布局

res/layout-sw600dp/main_activity.xml #7寸平板布局

res/layout-sw720dp/main_activity.xml #10寸平板布局

再補充一點:

設備寬度的dp計算方法:

dp = 屏幕像素寬度/(屏幕像素密度/160)   160是基准屏幕像素密度    這個用來計算以上的sw后面的數值

通用公式:

dp = px/(dpi/160)

px = dp*(dpi/160)

android 资源限定符,Android 適配時資源限定符的說明相关推荐

  1. Android资源分离,可分离Android操作系统报告:硬件环境检测文件(十)(分析)...

    可分离Android操作系统报告:硬件环境检测文件(十)(分析) (2018-04-18 12:23:58) 标签: it 0x38000-终  1F E0 8E 05 60 29 1C ED A8 ...

  2. 安卓Android资源链接失败,Android资源链接失败

    有谁知道这个错误是什么,我该如何解决这个问题? 我试图从Mumble打开源代码并坚持这个错误 Android resource linking failed Output: C:\Users\NP\D ...

  3. android资源编译失败,Android Studio 3.0,AAPT2编译失败 – 资源文件中的dimen无效

    我在Arch Linux上使用 Android Studio 3.0 Canary 3,我正在尝试制作一个小应用程序. 在发布问题之前进行了一些研究,但我发现的解决方案都不适用于我. 任何帮助将非常感 ...

  4. android dimensions.xml,[Android Studio #2] 操作資源XML檔

    利用Android Studio產生出第一個程式後,點擊Project按鈕觀察專案的目錄結構,再研究資源檔的使用方法,同時在第一個程式畫面裡增加另一個文字元件. Android Studio的專案目錄 ...

  5. android assets绝对路径,Android 获取assets的绝对路径

    第一种方法: String path = "file:///android_asset/文件名"; 第二种方法: InputStream abpath = getClass().g ...

  6. android 4.4 webview 上传,android使用webview上傳文件(適配4.4以上系統)

    在版本迭代中需要上傳圖片做統計,把鏈接發QQ上,里面的網頁可以正常上傳圖片,但是我們自己app里不能上傳.查了一些相關資料 默認情況下,Android的webview是不支持的,點擊沒有任何反應,如果 ...

  7. android 屏幕最小宽度_AndroidTV屏幕适配-smallestWidth(最小宽度) 限定符

    背景 前几天接到一个需求,把项目上的原来的2k屏幕适配到4k屏幕. 我采用的是smallestWidth最小宽度限定符进行适配的我们项目的. 1,smallestWidth 限定符适配原理 系统都是根 ...

  8. 【Android 屏幕适配】屏幕适配基础概念 ④ ( 屏幕适配限定符 | 手机/平板电脑设备屏幕适配 )

    文章目录 一.屏幕适配限定符 二.手机/平板电脑设备屏幕适配 平板电脑市场占有率 密度无关像素计算 手机设备限定符 平板设备限定符 参考文档 : 设备兼容性概览 屏幕兼容性概览 支持不同的像素密度 声 ...

  9. android资源适配

    android程序在不同的环境(如分辨率不同的机型,不同语言的操作系统)或状态(如横竖屏)下,需要不同的资源(如图片,语言),一般情况下,这些资源是自适配的,只需要命名不同的资源文件夹,把同名的资源放 ...

最新文章

  1. Redis-11使用 watch 命令监控事务
  2. ML之MIC:利用某数据集计算机最大信息系数MIC并可视化MIC矩阵热图及其代码实现
  3. c# winform窗口自适应各种分辨率类
  4. 谈谈前后端分离实践中如何提升RESTful API开发效率
  5. VBA学习_5:流程控制
  6. 计算机设计大赛国奖作品_5. 模拟退火求解旅行商问题
  7. 译文 | 与TensorFlow的第一次接触 第六章:并发
  8. 360互联网训练营第十四期——大数据技术开放日
  9. 教你使用squid搭配dante做代理
  10. 【渝粤题库】陕西师范大学200021现代汉语 作业(高起本、高起专)
  11. 局部特征提取-LBP算法
  12. 项目中用到的ws2811炫彩灯控制程序
  13. python xlsxwriter dict_Python玩转Excel神器xlsxwriter详解
  14. 5分钟三句代码实现抖音自动下载
  15. springboot打包-依赖包到单独文件夹并微缩原有jar包体积
  16. LaTeX局部改变字体类型
  17. 用循环不定式来证明冒泡排序的正确性
  18. 如何查看本机的ip地址和端口号
  19. linux sd卡驱动流程图,SD卡驱动(详细介绍,不明白的人可以仔细看看了.有流程图)-转-OpenEdv-开源电子网...
  20. MPEGl和MPEG2数字视频编码标准

热门文章

  1. Windows下安装labelImg详细过程(无法在Anaconda Prompt和Anaconda Navigator中安装labelImg)
  2. SAD,SAE,SATD,SSD,SSE,MAD,MAE,MSD,MSE理解
  3. 笔记 打印n位数字的每位数字
  4. android 判断5g,Android 5G判断
  5. 如何轻松在电脑上实现语音输入
  6. 蓝牙官方资料下载地址(官方)
  7. 复制品游戏中计算机的作用,是致敬还是抄袭?来看看这个《塞尔达传说》的像素级复制品...
  8. 消息通知系统模型设计 1
  9. OneNote(或印象笔记)迁移到Joplin的方法
  10. 搭建Jrebel激活服务