Android开发中最头疼的问题之一就是兼容不同尺寸和分辨率的设备。这里推荐一篇总结的比较完整的《Android开发:最全面、最易懂的Android屏幕适配解决方案》。这篇文章对屏幕兼容的许多问题都做了详述,这里只补充一点,就是关于在使用最小宽度限定符时这个最小宽度的该如何计算。

最小宽度限定符可以使用一个与屏幕像素密度无关为单位(dp)的数值区分出的不同设备,以应用不同的资源。如下图中values-sw600dp的sw表示最小宽度,那么600dp是如何确定的呢?

举个例子:一般情况下我们可以容易知道设备的分辨率和尺寸的参数。比如现在有平板A(分辨率1280*720px,尺寸是8inch),手机B(分辨率1920*1080px,尺寸是5.7inch),手机C(分辨率1280*720px,尺寸是5inch)。通过下面的屏幕像素密度的计算公式,我们可以分别计算出他们的屏幕像素密度:

平板A约为184dpi,手机B约为386dpi,手机C约为293dpi。

接下里需要注意的是,最小宽度是不考虑横屏或竖屏的,也就是说最小宽度是设备屏幕四条边里最短的那两条边。如果需要考虑横竖屏那么可以加入屏幕方向限定符,这不在我们讨论之列。那么接下来我们取最短边的像素数,并通过下面的公式计算最小宽度(dp):

平板A约为626dp,手机B约为448dp,手机C约为393dp。

如上,使用600dp就可以区分出平板和手机两类设备,如果需要详细区分手机B和C可以再考虑设置sw400dp作为区分。

Android使用最小宽度限定符时最小宽度的计算的更多相关文章

  1. Android笔记:限定符

    屏幕特征限定符描述大小 small 提供给小屏幕设备的资源 normal 提供给中等屏幕设备的资源 large 提供给大屏幕设备的资源 xlarge 提供给超大屏幕设备的资源分辨率 ldpi 提供给低 ...

  2. Android屏幕适配方案——基于最小宽度(Smallest-width)限定符

    转自:https://www.cnblogs.com/error404/p/3815739.html 一.关于布局适配建议 1.不要使用绝对布局 2.尽量使用match_parent 而不是fill_ ...

  3. Android入门(七)碎片的生命周期与限定符

    原文链接:http://www.orlion.ga/560/ 这篇文章实际已经在上篇文章中写的差不多了,但是万恶的wordpress没保存!已经不止一次出现这种情况了! 一.碎片的生命周期 1.碎片的 ...

  4. Android 限定符

    Android中一些常见的限定符可以参考下表. 使用最小宽度限定符 在上一小节中我们使用large限定符成功解决了单页双页的判断问题,不过很快又有一个新的问题出现了,large到底是指多大呢?有的时候 ...

  5. 安卓UI适配限定符

    引言 对于程序在不同尺寸的Android机器上执行,对UI的适用性造成了额外的开销,只是限定符的出现,非常方便的攻克了这个问题.通过创建限定符相关的文件夹来解决资源的载入. 限定符用处 限定符(mdp ...

  6. 【Android】4.2 资源限定符和可视化选项

    分类:C#.Android.VS2015:创建日期:2016-02-06 在设计界面中,所有资源都可以被限定为使用哪个国家或地区的语言.例如,将字符串资源限定为默认使用中文等. 将字符串资源限定为默认 ...

  7. Android资源限定符

    Android系统会根据设备参数,自动选择最佳资源配置方案. Android中常见的资源限定符: 屏幕特征 限定符 描述 大小 small 提供给小屏幕设备的资源 normal 提供给中等屏幕设备的资 ...

  8. [汇编与C语言关系]5. volatile限定符

    现在研究一下编译器优化会对生成的指令产生什么影响,在此基础上介绍C语言的volatile限定符.首先看下面的C程序: /* artificial device registers */ unsigne ...

  9. C++const限定符

    在C语言中我们使用#define宏定义的方式来处理符号常量.而在C++中有一种更好的处理符号常量的方法,那就是使用const关键字来修改变量声明和初始化.这种处理常量方式的好处不言而喻:如果程序在多处 ...

随机推荐

  1. Android-TextView跑马灯效果

    要实现跑马灯还是比较简单的. 同时有几个需要注意的点,先上代码: public class MTView extends TextView { public MTView(Context contex ...

  2. 让你在PC上调试Web App,UC浏览器发布开发者版

    目前,在手机上使用浏览器访问网页,无法便捷地进行网页语言调试.手机屏幕相对较小且操作不便,直接在手机上进行网页数据调试不太现实. 因此,UC使用技术将手机网页调试信息分离,实现一种能在大屏幕.高配置P ...

  3. Enterprise Solution 开源项目资源汇总 Visual Studio Online 源代码托管 企业管理软件开发框架

    Enterprise Solution 是一套管理软件开发框架,在这个框架基础上开发出一套企业资源计划系统Enterprise Edition. 现将Enterprise Solution开发过程中遇 ...

  4. SQL Server 多实例下的复制

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 搭建步骤(Procedure) 注意事项(Attention) 二.背景(Contexts) ...

  5. ASP.NET MVC5+EF6+EasyUI 后台管理系统(54)-工作流设计-所有流程监控

    系列目录 先补充一个平面化登陆页面代码,自己更换喜欢的颜色背景 @using Apps.Common; @{ Layout = null; } <!DOCTYPE html> <ht ...

  6. ASP.NET Core管道深度剖析[共4篇]

    之所以称ASP.NET Core是一个Web开发平台,源于它具有一个极具扩展性的请求处理管道,我们可以通过这个管道的定制来满足各种场景下的HTTP处理需求.ASP. NET Core应用的很多特性,比 ...

  7. 你可能不知道的陷阱, IEnumerable接口

    1.  IEnumerable 与  IEnumerator IEnumerable枚举器接口的重要性,说一万句话都不过分.几乎所有集合都实现了这个接口,Linq的核心也依赖于这个万能的接口.C语言的 ...

  8. Java集合专题总结(1):HashMap 和 HashTable 源码学习和面试总结

    2017年的秋招彻底结束了,感觉Java上面的最常见的集合相关的问题就是hash--系列和一些常用并发集合和队列,堆等结合算法一起考察,不完全统计,本人经历:先后百度.唯品会.58同城.新浪微博.趣分 ...

  9. 谈谈React那些小事

    前言 说起React,那也是近一年多时间火起来的前端框架,其在Facebook的影响力和大力推广下,已然成为目前前端界的中流砥柱.在如今的前端框架界,React.Vue.Angular三分天下的时代已 ...

  10. 成吨提高开发效率:Intellij Shortcuts精简子集与思维模式

    在线精简cheatsheet备查表:intellij.linesh.twGithub项目:intellij-mac-frequent-keymap Intellij的快捷键多而繁杂,从官方推荐的key ...