android根据屏幕尺寸区分设备类型,phone或者pad
来源:互联网 发布:网络剧受众画像 编辑:程序博客网 时间:2024/05/01 22:25
上篇介绍了Android手机分辨率基础知识(DPI,DIP计算)想了很多,也查了很多资料不知道如何区分android设备是phone还是pad,android中没有提供固定的方法,有人说用android版本号判断,可是现在android设备很多都在升级系统,没有固定标准,有人说用分辨路,说800*480以上的一般都是pad使用,可是现在很多高分辨率的手机比如三星galaxy NOTE就采用了1280*800 分辨率,屏幕是5.3寸,但是我们看,一般手机屏幕都比较小(相对pad而言),一般手机尺寸都在6英寸以下,而pad多是6英寸以上,好,下面就根据这个标准来判断:
出发点:Android系统本身是支持多种分辨率的,如图1所示,一般情况下要适配不同尺寸的设备只需要做两件事,1. 根据4种不同的屏幕尺寸提供4套UI布局(layout)。 2. 根据4种不同屏幕像素密度(单位英寸的像素值)提供4套界面元素的图片。
图1
而实际应用合并过程中存在的问题是:同一个应用对应的手机和平板界面设计是完全不一样的,如何根据屏幕的大小来决定提供哪一套界面是一件很头疼的事情。
目的:根据分辨率来区分手机和平板的不合理性在于:
1. 分辨率高但是物理屏幕尺寸小的设备(比如三星5.3寸的galaxy NOTE1280*800 手机)采用平板布局后的可点击界面元素太小,很难点中。
2. 分辨率小但是物理屏幕尺寸大的设备采用手机布局后界面元素过大,显得整体UI粗糙。
所以目前通过屏幕尺寸来区分手机和平板相对合理,主要目的是验证如下调整的可行性
分辨率与屏幕尺寸的换算:首先要了解Android分辨率相关基础概念
术语
说明
备注
Screen size(屏幕尺寸)
指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸
摩托罗拉milestone手机是3.7英寸
Aspect Ratio(宽高比率)
指的是实际的物理尺寸宽高比率,分为long和nolong
Milestone是16:9,属于long
Resolution(分辨率)
和电脑的分辨率概念一样,指手机屏幕纵、横方向像素个数
Milestone是854*480
DPI(dot per inch)
每英寸像素数,如120dpi,160dpi等,假设QVGA(320*240)分辨率的屏幕物理尺寸是(2英寸*1.5英寸),dpi=160
可以反映屏幕的清晰度,用于缩放UI的
Density(密度)
屏幕里像素值浓度,resolution/Screen size可以反映出手机密度,
Density-independent pixel (dip)
指的是逻辑密度计算单位,dip和具体像素值的对应公式是dip/pixel=dpi值/160,也就是px = dp * (dpi / 160)
手机像素密度(density)实际上是以单位英寸160个像素作为参考标准,主要密度有0.75,1,1.5和2,当密度为2时就表示1英寸有320个像素,Android中通过代码可以获取到屏幕的像素值和密度,根据这些值就可以反向算出屏幕的物理尺寸
屏幕尺寸=屏幕对角线的像素值/(密度*160)=
实践过程:
由于Android设备中获取的密度density本身是个约等于的数值,比如计算出密度的准确值density=1.575,实际在代码中读到的density=1.5, 需要实现一个简单的计算屏幕尺寸的应用在不同设备上验证物理尺寸准确程度,具体代码如下:
实践结果:几个不同设备(手机和平板)的测试结果如下:
结论:手机上根据分辨率反向算出的屏幕物理尺寸比较准确,平板则误差较大,但是结果基本上是大于6寸,以上根据物理尺寸区分手机和平板的方法目前来看是可行的。
本文转自:http://blog.csdn.net/moruite/article/details/7281428,部分变动。
- android根据屏幕尺寸区分设备类型,phone或者pad
- android根据屏幕尺寸区分设备类型,phone或者pad
- android 计算屏幕尺寸来区分phone和pad
- android区分pad还是phone设备
- Android 区分PAD和PHONE
- android计算 pad或手机的像素,密度,屏幕尺寸
- 获取Android手机或Pad的屏幕的物理尺寸
- android 获取设备屏幕尺寸
- Android的屏幕适配问题(Phone、Pad)
- Android的屏幕适配问题(Phone、Pad)
- Android平台根据分辨率计算屏幕尺寸
- 根据设备屏幕尺寸判断型号及其局限
- android 获取设备屏幕尺寸、高度、宽度
- Android 设备屏幕尺寸的确定
- IOS 判断设备屏幕尺寸、分辨率 根据屏幕尺寸和分辨率
- android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法
- ****android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法
- android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法
- UIKit---UIButton详解
- 重定位PC相对引用(PC-relative reference relocation)
- SMARTFORMS(小计、合计)
- bzoj 3675: [Apio2014]序列分割
- 7-2通信系统中为什么要进行调制和解调?调制的分类方法有哪些?
- android根据屏幕尺寸区分设备类型,phone或者pad
- Gemcom.Minex.v6.1.1 1CD
- private,空,protected,public 权限
- 看数据结构写代码(46) 关键路径
- Ansys 14.0 Linux64-ISO 2DVD
- 利用powerDesigner逆向导出oracle表为PDM
- UIKit---UITextField详解
- Could not open a connection to your authentication agent
- 机器学习实践中的7种常见错误