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

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. Android多线程断点续传下载

    这个月接到一个项目.要写一个像360助手一样的对于软件管理的APP:当中.遇到了一个问题:多线程断点下载 这个 ,因为之前没有写过这方面的应用功能.所以.不免要自学了. 然后就在各个昂站上收索并整理了 ...

  2. jsp 声明类的使用

    能够在"<%!"和"%>"之间声明一个类,该类在JSP页面内有效,即在JSP页面的Java程序片部分能够使用该类创建对象.在以下的样例中,我们定义了 ...

  3. oracle 10 g 需要启动的2个服务

    开始-> run -> cmd -> services.msc OracleOraDB10g_home1TNSListener OracleServiceORCL

  4. OS之多线程

    os中引入进程的目的是,为了描述和实现多个程序的并发执行,以改善资源利用率及提高系统的吞吐量. 为什么要引入线程?这是为了减少程序并发执行时系统所付出的额外开销(堆栈切换的开销等),使os具有更好的并 ...

  5. IIS MIME的 映射 网站有些类型的文件不能通过网页访问

    在iis中能够浏览所有扩展名的文件时,IIS MIME的 映射 您只能在故障排除过程中将通配符映射添加到 IIS MIME 映射中,以作为一种临时解决方案.确定缺少 MIME 类型是问题的原因后,请删 ...

  6. SQL Server验证的两种方式

    1.Windows身份验证:本机连接或者受信的局域网连接(一般在忘记管理员密码或者做系统配置的情况下使用). 2.SQLServer验证:使用用户名.密码验证(推荐使用). 启用方法:以Windows ...

  7. SQL 插入语句汇总

    INSERT VALUES 插入一行或多行到目标表中 -- single row INSERT INTO Sales.MyOrders(custid, empid, orderdate, shipco ...

  8. python中的迭代

    #迭代Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上. #list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标 ...

  9. 杭电ACM 偶数求和

    偶数求和 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  10. CSS3 总结-2

    过渡属性 下面的表格列出了所有的转换属性: 属性 描述 CSS transition 简写属性,用于在一个属性中设置四个过渡属性. 3 transition-property 规定应用过渡的 CSS ...