如果你有一台机器,如以下决议:

800 x 480

1024 x 600

1024 x 768

1280 x 800

1920 x 1200

2048 x 1536

总共六种类分辨率机器,假设依照dp为单位来细分能够分为几种呢?

首先通过context.getResources().getDisplayMetrics().density获取到当前机器的屏幕密度,然后通过dp = px/density进行换算能够得到机器相应的以dp为单位的大小。比方。我分别打出了自己手里面设备相应的dp,值例如以下:

设备px大小

设备屏幕密度dpi

设备dp大小

相应的最小宽度

800 x 480

1

800 x 480

Sw480dp

1024 x 600

1

1024 x 600

Sw600dp

1024 x 768

1

1024 x 768

Sw720dp

1280 x 800

1,另外一台机器是1.5

1280 x 800 另外一台是853 x 533

Sw720dp 另外一台是Sw480dp

1920 x 1200

1.5

1280 x 800

Sw720dp

2048 x 1536

2

1024 x 768

Sw720dp

表一 设备dp 最小宽度描写叙述表

关于最小宽度的概念能够看以下描写叙述:

屏幕的基本尺寸,是指最短的可用屏幕区域。

详细的说,设备的最小宽度是屏幕可用的宽度和高度中最短的那个(也能够把它看做是屏幕的最小可能的宽度)。这样就能够使用这个限定符来确保应用程序至少有<N>dp的宽度可用于UI界面。而无论屏幕的当前方向。

比如。假设布局在不论什么时候都须要至少600dp的最小屏幕尺寸,那么就行使用这个限定符,在res/layout-sw600dp/文件夹中创建布局资源。

系统仅仅会在可用屏幕的尺寸至少是600dp的时候才会使用这些资源。而无论600dp是否是被用户认知的高度或宽度。

最小宽度是设备的固定屏幕尺寸特征。当屏幕的方向发生改变时,设备的最小宽度不改变。

设备的最小宽度须要考虑屏幕的装饰和系统UI的占用。比如,假设设备有一些固定的UI元素要沿着最小宽度的轴向。占用一定的屏幕空间。那么系统声明的最小宽度要比实际的屏幕尺寸要小。由于被系统占用的像素部分对用户应用程序的UI无效。因此。这个值应该是应用程序布局所须要的最小的实际尺寸(通常,这个值是布局支持的最小宽度,而无论屏幕的当前方向)。

下面是能够使用的通用屏幕尺寸的一些值:1.320,针对下面屏幕配置的设备:

240x320ldpi(QVGA手持设备)

320x480mdpi(手持设备)

480x800hdpi(高分辨率手持设备)

2.480。针对480x800mdpi的屏幕(平板或手持设备)

3.600。针对600x1024mdip的屏幕(7英寸平板)

4.720,针对720x1280mdip的屏幕(10英寸平板)

当应用程序提供了多个带有不同值的最小宽度限定符资源文件夹时,系统会使用最接近(不超出)设备最小宽度的那个资源。

这个限定符被加入在API级别13中。

还要看android:requiresSmallestWidthDp属性。它声明了与你的应用程序兼容的最小的最小宽度。而且smallestScreenWidthDp配置字段会持有这个设备最小宽度的值。

从表一能够看到。七个设备、六种分辨率相应了三中最小宽度,因此我们适配了这几种不同 最小宽度的情况就能够完毕对上面全部机型的适配。如何依据最小宽度来适配不同机型呢?事实上非常easy,仅仅须要自己定义以下几个目录里面的文件就能够了。

res/layout-sw320dp

res/layout-sw480dp

res/layout-sw600dp

res/layout-sw720dp

res/values-sw320dp

res/values-sw480dp

res/values-sw600dp

res/lvalues-sw720dp

举个样例。假如我在做第一款机器的时候。全部的UI尺寸都是以720dp的机器来配置的,那么相应到最小宽度为600dp的机器就应该是全部的尺寸大小除以1.2。相应到最小宽度为480dp的机器就应该是全部的尺寸大小除以1.5,依次类推。

当然,前提是你在布局里面的尺寸都是用dp为单位,字体用sp或者dp为单位。

版权声明:本文博客原创文章。博客,未经同意,不得转载。

Android 多分辨率机适应的更多相关文章

  1. 在Mac系统上配置Android真机调试环境

    在Mac系统上配置Android真机调试环境 mac上配置安卓环境还说挺方便的,真机调试也比win上要好一些.win上被各种软件强行安装了xxx助手. 在mac上就了一个干净的感觉. 下载Androi ...

  2. Android多分辨率适配

    前一阶段开发android项目,由于客户要求进行多分辨率适配,能够支持国内主流的分辨率手机.因此经过了几次开发走了很多弯路,目前刚刚领略了android多分辨率适配的一些方法. 先介绍一下所走的弯路, ...

  3. Android多分辨率适配经验总结

      Android多分辨率适配是一件很有意义但是比较麻烦的事情,网上有很多关于多分辨率适配的文章,多数文章讲解的都是整个APP的图片比较规则,可以将图片做成9图来完成多分辨率适配,但是对于一些游戏类应 ...

  4. android真机自动化测试

    appium执行用例时报错问题: 问题解析: 一般该种情况都是因为来连接了多个设备,验证办法:cmd->执行adb devices  看结果是否是多个devices ,如果是这个问题,停掉多余设 ...

  5. 【转】android多分辨率适配

    前一阶段开发android项目,由于客户要求进行多分辨率适配,能够支持国内主流的分辨率手机.因此经过了几次开发走了很多弯路,目前刚刚领略了android多分辨率适配的一些方法. 先介绍一下所走的弯路, ...

  6. Android真机测试,连接到本地服务器的方法

    1. 前言 作为一名Android开发者,不管怎么说,都会经历使用Android真机来测试连接本地服务器这样的事情.这里所说的“本地服务器”大多数时候指的是:搭载有某种服务器软件的PC,例如搭载有To ...

  7. Android 真机投影到PC端,真机投影工具;Vysor

    Vysor可以把Android真机投影到PC端,也就是电脑上:手机端和PC端课同步操作: Vysor是Chrome浏览器的插件,我们想要添加这个插件需要FQ: 从这里可以直接下载:Vysor

  8. Unity Frame Debugger连接Android真机调试

    当用Profiler分析到不是代码导致的性能问题,当前场景最大的性能瓶颈是渲染时,或者自己写的Shader要调试时,都可以用Frame Debugger进行调试. 按下列步骤设置打包,既可以用Prof ...

  9. Unity Profiler连接Android真机调试

    Profiler在Editor模式就可以观看性能消耗,但是毕竟电脑配置高,跟手机真机环境还是有区别.实际开发中的优化还是推荐用真机测试. 因为IOS一般比Android手机的配置高,在Android平 ...

随机推荐

  1. POCO C++ lib开发环境构建

    Welcome Thank you for downloading the POCO C++ Libraries and welcome to the growing community of POC ...

  2. Microsoft Deployment Toolkit 2013 Preview Release Now Available

    MDT 2013 provides a common console with comprehensive tools and guidance for every organizational ro ...

  3. 感觉挺有意思的SQL题目

    1.有如下数据,要求查询每个班最低分和最高分,并将最高分与最低分显示为同一列 ID Student CourseName Score1 张三 English 802 张三 Math 703 张三 Ch ...

  4. js动画学习(四)

    七.多属性封装函数 前面分别介绍了单独改变单一属性值得动画,从本节起开始介绍多属性封装函数,一个函数搞定多种属性值的改变. 首先介绍一个很重要的函数getStyle(),这个函数返回一个元素的当前属性 ...

  5. 2.4.5 用NPOI操作EXCEL--插入图片

    我们知道,在Excel中是可以插入图片的.操作菜单是“插入->图片”,然后选择要插入图片,可以很容易地在Excel插入图片.同样,在NPOI中,利用代码也可以实现同样的效果.在NPOI中插入图片 ...

  6. 【监控】使用probe对tomcat服务进行监控

    1.运行环境(博主本地) JDK:jdk1.6 Tomcat:tomcat7 OS:Windows10 2.下载 点击下载 3.安装运行 1.解压,将probe文件夹复制放进tomcat里面的weba ...

  7. java concurrency: ThreadLocal及其实现机制

    转载:http://shmilyaw-hotmail-com.iteye.com/blog/1703382 ThreadLocal概念 从字面上来理解ThreadLocal,感觉就是相当于线程本地的. ...

  8. Longest Substring Without Repeating Characters - 哈希与双指针

    题意很简单,就是寻找一个字符串中连续的最长包含不同字母的子串. 其实用最朴素的方法,从当前字符开始寻找,找到以当前字符开头的最长子串.这个方法猛一看是个n方的算法,但是要注意到由于字符数目的限制,其实 ...

  9. Python 模块(八) socketserver 以及 线程、进程

    目录 异常处理 socketserver 线程.进程 一.异常处理 try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执 ...

  10. linux系统调用和库函数调用的区别(转)

    Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions).可以参考<Linux程序设计>(英文原版为<Beginning ...