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

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

 

出发点: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寸,以上根据物理尺寸区分手机和平板的方法目前来看是可行的。

时间: 2024-11-27 18:53:01

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

Android的分辨率和屏幕适配详解_Android

一.为什么Android要进行分辨率与屏幕适配 最大的原因是碎片化,因为Android的开源措施和各个厂商的自己细微修改,结果就变成了这个样 需要适配的屏幕尺寸就有这么多: 这怎么可能嘛T_T. 所以我们就只照顾大部分人,根据友盟的统计数据如下: 所以只需要适配: 800x480.854x480.960x540.1184x720.1280x720.1920x1080这六种分辨率. 二.基本知识 屏幕尺寸 英寸,1英寸=2.54厘米.比如常见的屏幕尺寸有2.4.2.8.3.5.3.7.4.2.5.

Android的分辨率和屏幕适配详解

一.为什么Android要进行分辨率与屏幕适配 最大的原因是碎片化,因为Android的开源措施和各个厂商的自己细微修改,结果就变成了这个样 需要适配的屏幕尺寸就有这么多: 这怎么可能嘛T_T. 所以我们就只照顾大部分人,根据友盟的统计数据如下: 所以只需要适配: 800x480.854x480.960x540.1184x720.1280x720.1920x1080这六种分辨率. 二.基本知识 屏幕尺寸 英寸,1英寸=2.54厘米.比如常见的屏幕尺寸有2.4.2.8.3.5.3.7.4.2.5.

2013年全球Android平台产品出货或超4000万台

6月19日早间消息,据台湾媒体报道,越来越多PC品牌推出Android笔记本,手机一线品牌中有四家都宣告推出Android智能手机,在此推动下,MIC预期,2013年全球Android平台产品出货量将超过4000万台. 宏达电去年10月与Google.T-Mobile在美国共同推出第一款Android手机后,半年内在美国累积销售量达百万部,并让原先对Android平台没有兴趣大型电信运营商,态度出现180度大转变,也成功吸引国内外手机厂商均投入研发. 目前除了宏达电外,LG.三星.摩托罗拉.索尼

android开发教程之判断是手机还是平板的方法_Android

方法一 复制代码 代码如下: public static boolean isTablet(Context context) {        return (context.getResources().getConfiguration().screenLayout                & Configuration.SCREENLAYOUT_SIZE_MASK)                >= Configuration.SCREENLAYOUT_SIZE_LARGE;}

android开发教程之判断是手机还是平板的方法

方法一 复制代码 代码如下:public static boolean isTablet(Context context) {        return (context.getResources().getConfiguration().screenLayout                & Configuration.SCREENLAYOUT_SIZE_MASK)                >= Configuration.SCREENLAYOUT_SIZE_LARGE;} 方

不同Android版本设备正确获取屏幕分辨率的通用方法

不同Android版本设备正确获取屏幕分辨率的通用方法         谈到android屏幕分辨率,大家都知道,但是怎么正确的获取屏幕的分辨率呢?android2.2\2.3\4.0\4.1使用的方法一样吗?       答案是否定的.事物是发展变化的,android也不例外,android2.2.2.3因为标配是有触摸屏按钮的,也就是说触摸屏上BACK.HOME.MEAN是在触摸屏分辨率识别范围之外的.但是在android4.0以后,已经取消了,开始使用软件按钮了,在屏幕的下方会占掉一定的高

基于Azure云计算平台的网格计算,第1部分

在这个由3部分组成的系列文章中,我们将看一下利用Azure云计算平台的网格计算.在第1部分中,我们将看到所涉及的设计模式以及一些有益的观点.在第2和第3部分,我们将看到一个用来展示专门为Azure而开发的网格计算框架的代码例子. 并不是所有人都清楚,网格计算和云计算之间的区别,所以我们先来简短解释一下两者.虽然网格计算和云计算不是同一个东西,但是它们之间有很多可协同的地方,并且共同使用它们是非常有意义的. 网格计算 网格计算就是利用工作于并行模式而非单机模式的一大批计算机来处理计算问题.这种方式

基于Azure云计算平台的网格计算,第2部分:开发网格应用

在本系列的第1部分,我们介绍了在Azure上进行网格计算的设计模型.在这篇文章中,我们将用C#来 开发一个网格应用程序以实现这个模式:而在第3部分,我们将首先在本地运行这个应用程序,接着在云 中运行.为了实现这些功能,我们需要网格计算框架提供的辅助功能. 网格框架的角色 除非你准备编写大量的底层基础软件,那么应该为你的网格应用程序选用一个框架,来消除繁重的工作 ,让你集中精力于应用程序代码的编写.虽然 Azure实现了你想在网格计算基础结构中所需的很多服务 ,但仍然需要在Azure和网格应用程序

求怎样做一个基于贝叶斯的android平台垃圾短信过滤系统

问题描述 求怎样做一个基于贝叶斯的android平台垃圾短信过滤系统 大家好,我目前想做一个基于贝叶斯概率模型的android平台垃圾短信过滤系统,在网上也找了一些关于这一方面的文章和论文,但大多讲的偏理论些,在系统实现的架构和细节上讲的很少.在结构设计上遇到一些问题:1.分类器训练是放在系统软件内部好些还是在外部训练好分类器在放入软件中?2.中分分词问题,有哪些好的分词器,网上查了查开源的分词器iKanalyzer不知这个分词器在android上运行占用内存资源会不会很大? 请大家给些意见,先