采用HTML5在开发移动应用程序满足各种需求Android分辨率和屏幕的平板设备密度,这是非常麻烦的过程,最终的解决方案是使用css media query,匹配相同的时间分辨率和屏幕像素密度。上进行兼容性測试,终于保证在多数Android平板上都能较好的显示。

一个典型的针对设备的Css Media Query写法例如以下。能够保证页面高度充满屏幕,简单的设置height:100%是不行的。

//SAMSUNG N5100, Nexus7 1,
@media only screen
and (min-device-height : 790px)
and (max-device-height : 810px)
and (-webkit-min-device-pixel-ratio: 1.3)
and (-webkit-max-device-pixel-ratio: 1.4)
and (orientation : landscape) {
.nav-item{
padding: $nav-item-iconSize + 12 3px 3px 0;
&:before{
top: 12px;
}
}
body{
height: 601px;
}
.category-content,
.category-content-2,{
.category-list{
padding: 10px 10px;
.list-item{
margin: 10px 15px;
}
}
}
}

以下是适配时收集的各种平板的分辨率数据,细致研究还是能发现不少问题的,能够看出假设分辨率是1280*800,屏幕密度是1.33125。那么相应css中的高度应该是600.99px。底部虚拟按键占48px。有了这些数据就能够做屏幕适配了。

三星 N5100平板,android4.4

07-15 11:12:56.316: E/metrics.density(23926): DisplayMetrics{density=1.33125, width=1280, height=800, scaledDensity=1.7306249, xdpi=189.02325, ydpi=188.14815}

07-15 11:16:33.296: I/Web Console(25284): devicePixelRatio= 1.3312499523162842 screen.width=1280 screen.height=800  window.outerWidth1280:79

三星 GT-5110

07-22 10:06:13.662: E/metrics.density(3438): DisplayMetrics{density=1.0, width=1280, height=752, scaledDensity=1.0, xdpi=149.82489, ydpi=149.41176}

07-22 10:06:17.037: I/Web Console(3438): devicePixelRatio= 1 screen.width=1280 screen.height=800  window.outerWidth1280:89

华为Media pad 10 fhd

07-22 12:12:34.501: E/metrics.density(29949): DisplayMetrics{density=1.5, width=1920, height=1128, scaledDensity=1.9499999, xdpi=224.73732, ydpi=224.11765}

07-22 12:12:36.824: I/Web Console(29949): devicePixelRatio= 1.5 screen.width=1920 screen.height=1200  window.outerWidth1920 at file:///android_asset/www/js/app.js:89

联想 S5100

07-22 14:07:45.107: E/metrics.density(2541): DisplayMetrics{density=1.3312501, width=1280, height=736, scaledDensity=1.3312501, xdpi=213.0, ydpi=213.0}

华为X1

07-23 13:41:30.180: E/metrics.density(13387): DisplayMetrics{density=2.0, width=1824, height=1200, scaledDensity=2.0, xdpi=324.255, ydpi=322.966}

07-23 13:41:32.870: I/Web Console(13387): devicePixelRatio= 2 screen.width=1200 screen.height=1920  window.outerWidth1824 at file:///android_asset/www/js/app.js:89

版权声明:本文博主原创文章,转载请保留源http://blog.csdn.net/offbye

采用CSS3 Media Query技术适应Android平板屏幕分辨率和屏幕像素密度的更多相关文章

  1. CSS3 Media Query实现响应Web设计(宽度为不同的移动设备)

    现在的屏幕分辨率.小到320px(iPhone),大到2560px或甚至更高(大显示屏).范围内变化很大.除了使用传统的台式机.用户会越来越多的通过手机.上网本.iPad一类的平板设备来浏览页面. 这 ...

  2. [转]CSS3 Media Query实现响应布局

    讲到响应式布局, 相信大家都有一定的了解,响应式布局是今年很流行的一个设计理念,随着移动互联网的盛行,为解决如今各式各样的浏览器分辨率以及不同移动设备的显示效果, 设计师提出了响应式布局的设计方案.今 ...

  3. 利用media query让背景图适应不同分辨率的设备

    随着上网方式的多样化,用户选择上网的工具不再仅是PC,而可以是手机,或者平板电脑.随之而来的问题是如何让网页适应不同分辨率,这给前端工程师们带来了新的挑战,其中重要的一点是如何让图片能在不同的分辨率下 ...

  4. 让IE支持CSS3 Media Query实现响应式Web设计

    如今的屏幕分辨率,小至320px(iPhone),大到2560px甚至更高(大显示器),变化范围极大.除了使用传统的台式机,用户会越来越多的通过手机.上网本.iPad一类的平板设备来浏览页面.这种情况 ...

  5. CSS3 Media Query

    在移动端火爆的今日,一个好的web应用不仅仅要有对应移动平台的APP,自己web网页也需要对不同屏幕大小的移动设备进行支持,也就是我们所说的响应式web页面. 本篇文章就来介绍下最常见的响应式页面的实 ...

  6. CSS3 Media Query 响应式媒体查询

    在CSS中,有一个极其实用的功能:@media 响应式布局.具体来说,就是可以根据客户端的介质和屏幕大小,提供不同的样式表或者只展示样式表中的一部分.通过响应式布局,可以达到只使用单一文件提供多平台的 ...

  7. Respond.js – 让 IE6-8 支持 CSS3 Media Query

    Respond.js 是一个快速.轻量的 polyfill,用于为 IE6-8 以及其它不支持 CSS3 Media Queries 的浏览器提供媒体查询的 min-width 和 max-width ...

  8. Respond.js让IE6-8支持CSS3 Media Query

    原文地址:http://caibaojian.com/respondjs.html   使用方式   官方demo地址:http://scottjehl.github.com/Respond/test ...

  9. HTML-HTML5+CSS3权威指南阅读(二、让IE支持HTML5标签及对CSS3 Media Query的兼容)

    兼容解决 HTML5是在低版本的浏览器(IE8-)的兼容是有限的,类似很多结构性的标 签<header>.<section>.<footer>等在IE8以下不会被识 ...

随机推荐

  1. A Game of Thrones(0) - PROLOGUE

    "We should start back", Gared urged as the woods began to grow dark around them. "The ...

  2. apache2.4.4启用deflate压缩

    今天在看<高性能php应用开发>这本书,说道如何启用mod_deflate: 启用如下模块: LoadModule deflate_module modules/mod_deflate.s ...

  3. 一个测试SQL2005数据库连接JSP档

    在这里,在SQL 2005中间InterLib数据库案例.得到InterLib/tb_booktype目录. 的影响,如下面的: watermark/2/text/aHR0cDovL2Jsb2cuY3 ...

  4. POJ1163 The Triangle 【DP】

    The Triangle Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 36918   Accepted: 22117 De ...

  5. C++出现计算机术语5

    class template(类模板) 可以用来定义一个类定义了一组特定类型的类的.类模板template keyword其次是尖括号(<>)附上.的列表来定义. export keywo ...

  6. JAVA先进-设置(1)

    >Arrays 基本阵列 1.常见的数组产生于main() 函数,数组下标的索引不能超过0到int的范围 2.当程序试图訪问数组的第一个或者最后一个数据的时候,会发生ArrayIndexOutO ...

  7. js中escape的用法----前端页面简单加密

    escape() 方法,它用于转义不能用明文正确发送的任何字符.比如,电话号码中的空格将被转换成字符 %20,从而能够在 URL 中传递这些字符. http://localhost:8080/a?na ...

  8. w7关闭休眠增加C盘容量

    http://jingyan.baidu.com/article/f3ad7d0fc0992e09c2345b51.html powercfg -h off,即可关闭休眠功能 powercfg -h ...

  9. poj2752 Seek the Name, Seek the Fame(next数组的运用)

    题目链接:id=2752" style="color:rgb(202,0,0); text-decoration:none; font-family:Arial; font-siz ...

  10. Effective C++:规定20: 宁pass-by-reference-to-const更换pass-by-value

    (一) 假设传递参数当函数被调用pass-by-value,然后函数的参数是基于实际参数的副本最初值,调用,也得到该函数返回的结束值复印件. 请看下面的代码: class Person { publi ...