出发点:Android系统本身是支持多种分辨率的,如图1所示,一般情况下要适配不同尺寸的设备只需要做两件事,1. 根据4种不同的屏幕尺寸提供4套UI布局(layout)。 2. 根据4种不同屏幕像素密度(单位英寸的像素值)提供4套界面元素的图片。

图1 Android屏幕分类

而实际应用合并过程中存在的问题是:同一个应用对应的手机和平板界面设计是完全不一样的,如何根据屏幕的大小来决定提供哪一套界面是一件很头疼的事情。

目的:根据分辨率来区分手机和平板的不合理性在于:

1. 分辨率高但是物理屏幕尺寸小的设备(比如三星5.3寸的galaxy NOTE1280*800 手机)采用平板布局后的可点击界面元素太小,很难点中。

2. 分辨率小但是物理屏幕尺寸大的设备采用手机布局后界面元素过大,显得整体UI粗糙。

所以目前通过屏幕尺寸来区分手机和平板相对合理,主要目的是验证如下调整的可行性

分辨率与屏幕尺寸的换算:首先要了解Android分辨率相关基础概念

手机像素密度(density)实际上是以单位英寸160个像素作为参考标准,主要密度有0.75,1,1.5和2,当密度为2时就表示1英寸有320个像素,Android中通过代码可以获取到屏幕的像素值和密度,根据这些值就可以反向算出屏幕的物理尺寸

屏幕尺寸=屏幕对角线的像素值/(密度*160)=   / (密度*160)

实践过程:

由于Android设备中获取的密度density本身是个约等于的数值,比如计算出密度的准确值density=1.575,实际在代码中读到的density=1.5, 需要实现一个简单的计算屏幕尺寸的应用在不同设备上验证物理尺寸准确程度,具体代码如下:

实践结果:几个不同设备(手机和平板)的测试结果如下:

结论:手机上根据分辨率反向算出的屏幕物理尺寸比较准确,平板则误差较大,但是结果基本上是大于6寸,以上根据物理尺寸区分手机和平板的方法目前来看是可行的。

android 计算屏幕尺寸来区分phone和pad相关推荐

  1. Android 计算屏幕尺寸

    1.通过WindowManager获取 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay() ...

  2. android设备类型,android根据屏幕尺寸区分设备类型,phone或者pad - yuanyuan

    上篇介绍了 Android手机分辨率基础知识(DPI,DIP计算) 想了很多,也查了很多资料不知道如何区分android设备是phone还是pad,android中没有提供固定的方法,有人说用andr ...

  3. Android平台根据分辨率计算屏幕尺寸,基于物理尺寸来验证手机和平板应用合并的可行性

    Android平台根据分辨率计算屏幕尺寸,基于物理尺寸来验证手机和平板应用合并的可行性   出发点:Android系统本身是支持多种分辨率的,如图1所示,一般情况下要适配不同尺寸的设备只需要做两件事, ...

  4. Supporting Multiple Screens(支持Android各种屏幕尺寸)

    原文链接 本文翻译自Supporting Multiple Screens. 目前我这篇翻译应该是最全,最完整的官方文档翻译,转载我的翻译请联系本人,标明出处. Supporting Multiple ...

  5. android获取屏幕尺寸、密度(判断手机屏幕类型)

    1. 概念介绍 分辨率:横纵2个方向的像素点的数量,常见取值 480X800 ,320X480 屏幕大小: 例如我的是4.0 英寸, 就是指 从屏幕的左上角 到 屏幕的右下角 连线长度为4.0英寸(可 ...

  6. Android 获取屏幕尺寸与密度

    遇到一个问题,我的地图浮标图片在WVGA手机上正好,在QVGA上就显的太大,所以我要根据屏幕的不同调整浮标的大小使其在QVGA大小合适.有的同事提出了依据分辨率来区分不同的屏幕,但是单WVGA就支持好 ...

  7. android 屏幕分辨率 屏幕密度,android分辨率,屏幕尺寸,屏幕密度关系

    名词定义 分辨率 分辨率就是手机屏幕的像素点数,通常描述成屏幕的"宽×高",安卓手机屏幕常见的分辨率有480×800.720×1280.1080×1920等.720×1280表示此 ...

  8. Android 获取屏幕尺寸(设备对角线的英寸数)

    使用屏幕的实际的宽高,根据勾股定理来计算设备的尺寸. 由于Android系统版本的不同和有的设备具有虚拟按键,需要根据不同的SDK的版本使用不同的方法来获取屏幕的实际宽高. 计算方法: Math.sq ...

  9. android屏幕密度高度,android分辨率,屏幕尺寸,屏幕密度关系

    名词定义 分辨率 分辨率就是手机屏幕的像素点数,一般描述成屏幕的"宽×高",安卓手机屏幕常见的分辨率有480×800.720×1280.1080×1920等.720×1280表示此 ...

  10. android获取屏幕尺寸、密度

    http://developer.android.com/reference/android/util/DisplayMetrics.html DisplayMetrics metric = new ...

最新文章

  1. C++ 复制构造函数或者拷贝构造函数
  2. 唯一索引和普通索引的选择
  3. mysql的日期差值按天表示_MySql计算日期差值和常用sql
  4. 5.USTC生命科学医学部学生会
  5. treemap怎么保证有序_干货!208道面试题教你怎么通过面试!
  6. 机器学习者都应该知道的五种损失函数!
  7. linux 录屏软件 按键,linux下常用的截图、录屏工具
  8. 023、JVM实战总结:一步一图:那JVM老年代垃圾回收器CMS工作时,内部又干了些啥?
  9. 删除AdminServer logs下的log文件后开启AdminServer报错
  10. PMP认证的教材更新到第几版了?
  11. 计算机显示器刷新率怎么调,电脑显示器刷新率如何设置,免费教你如何快手设置刷新率...
  12. Python爬取熊猫办公音频素材数据
  13. 非同步DCDC的工作模式(CCM、DCM和BCM)
  14. Tomcat解惑 之 CATALINA_HOME与CATALINA_BASE
  15. 【转载】java版打字练习软件
  16. python画成绩正态分布图_R统计学(09): 正态分布 (二)
  17. CPU使用率原理及计算方式
  18. Java实战项目开发视频教程分享
  19. 小乌龟怎么拉取最新代码_TotoiseSVN(中文名:小乌龟)使用教程
  20. ERP系统是一种服务器吗,erp系统可以用云服务器吗

热门文章

  1. Spider_Man_5.2 の Mongodb_使用
  2. 嵌入式软件开发下的数据积累
  3. 我的世界python——方块朋友(方块设置移动路径getline)
  4. 报错Minimum supported Gradle version is 4.4. Current version is 4.0.
  5. autoit3转换php,AutoIt3调用动态链接库DLL
  6. bypy更换绑定的百度云盘账户
  7. 详解WAF与极风云WAF
  8. JS JavaScript 实现文字上下滚动效果
  9. 2021年科创板股权激励研究报告发布
  10. 女神让我去修电脑,无数次戳中笑点