2.[WebView学习之二]:使用Web Apps 支持不同分辨率屏幕

上一篇我们学习了(1.[WebView学习之一]:Web Apps简介),今天我们来继续学习。

(博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明。

Author:hmjiangqq

Email:[email protected]

因为Android设备有很多分辨率,不一样的屏幕以及像素密度,所以在Web页面的设计过程中,应该考虑网页总能显示合适的大小。

在你为Android设备开发Web页面是,我们需要考虑以下两个因素:

1.:视图窗体(The
ViewPort)

The Viewport是一个可以进行缩放的矩形形状的Web
页面。你可以设置多个ViewPort属性例如:尺寸大小以及初始化缩放比例。最重要的是the
view port width(视图的宽度),这个定义了整个Web页面的水平像素大小。

2:屏幕密度(The Screen Density)

在Android设备上面WebView控件和绝大多数Web浏览器一样都可以把CSS的像素值转换成以密度为基础的独立像素值。所以你的Web页面在中等密度屏幕(例如:160dpi)上面会呈现相同的大小。如果你的Web设计中图片是最重要的,那么你更加要关注不同分辨率密度的换算。因为300px宽度的土在320dpi屏幕上面会进行放大。

(一):指定窗口属性(Specifying
Viewport Properties )

窗体是一个Web页面的区域,即时当我们进行缩放的时候可视窗体还是能够匹配屏幕的大小。例如:即时当我们的设备的物理宽度是480px(像素),viewport的宽度是800px(像素),当Viewport为正常缩放比例是(1.0)该基于800px设备的web页面也会完全充分的显示在屏幕上面。Android中绝大多数Web浏览器(例如:Chrome)的会默认设置一个大尺寸视图(该被称为"宽视图模式"-一般为980px)。很多浏览器也尽可能的缩小,来默认显示完整的大小(该被称为:概要模式)

[注]:当使用WebView来显示页面时,该默认不启用宽视图模式(这样页面会充分的放大,不会适配屏幕),当然你可以调用setUseWideViewPort()来启用宽视图模式

你可以在html文档的<head>中使用<metaname="viewport"…>标签为你的Web页面定义视图的属性,例如:宽度和初始化缩放比例。

下面是Viewport所有支持的属性以及可以设置的值

<span style="font-size:18px;"><meta name="viewport"
      content="
          height = [pixel_value | "device-height"] ,
          width = [pixel_value | "device-width"] ,
          initial-scale = float_value ,
          minimum-scale = float_value ,
          maximum-scale = float_value ,
          user-scalable = ["yes" | "no"]
          " />
</span>

例如:在下面<meta>标签中定义viewport宽度完全适配屏幕的宽度,并且设置用户不能进行缩放

<span style="font-size:18px;"><head>
    <title>Example</title>
    <meta name="viewport" content="width=device-width, user-scalable=no" />
</head>
</span>

当为移动设备优化网页,通过我们应该设置width为"device-width",这样尽可能的来适配所有的屏幕。然后使用CSS样式文件来为不同的屏幕分辨率调整布局。

[注]:当你确定你的Web页面来显示在小分辨率屏幕上面,你应该调用setUseWideViewPort(false)来禁用宽视图模式。

(二)针对不同屏幕使用CSS样式(Targeting
Device Density with CSS)

Android浏览器以及WebView都支持CSS样式文件,这样你可以为特殊屏幕密度创建带有"-webkit-device-pixel-ratio"的CSS样式文件。这个属性的可取值为"0.75","1"或者"1.5",该分别代表低密度,中密度,以及高密度屏幕。

例如:你可以为每一个密度创建单独的样式文件:

<span style="font-size:18px;"><link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.5)" href="hdpi.css" />
<link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio: 1.0)" href="mdpi.css" />
</span>

或者可以在一个样式文件中制定不同的风格

<span style="font-size:18px;">#header {
    background:url(medium-density-image.png);
}
@media screen and (-webkit-device-pixel-ratio: 1.5) {
    /* CSS for high-density screens */
    #header {
        background:url(high-density-image.png);
    }
}
@media screen and (-webkit-device-pixel-ratio: 0.75) {
    /* CSS for low-density screens */
    #header {
        background:url(low-density-image.png);
    }
}
</span>

更多处理不同屏幕分辨率,特殊资源图片的信息,你可以查看:High
DPI Images forVariable Pixel Densities
.

(三):针对不同的屏幕分辨率来使用JavaScript

Android浏览器和WebView都支持Dom属性,这样我们可以使用window.devicePixelRation该DOM属性来查询当前设备的密度。该属性的值代表当前设置的缩放比例因子。例如:如果window.devicePixelRatio的值为1.0,那么此时设备被认为是中等密度屏幕并且默认不会进行缩放。如果该值为1.5,那么此时设备被认为是高密度屏幕并且会进行1.5倍放大。如果该值为0.75,那么此时设备被认为是低密度屏幕并且会进行0.75缩小。当然Android浏览器和WebView的缩放比例都会基于现实Web页面的设备的密度,默认一般都会中等密度,但是你可以为不同屏幕密度来进行改变。

例如:下面就是使用Javascript来查询设备密度

<span style="font-size:18px;">if (window.devicePixelRatio == 1.5) {
  alert("This is a high-density screen");
} else if (window.devicePixelRatio == 0.75) {
  alert("This is a low-density screen");
}
</span>

时间: 2024-10-08 20:50:19

2.[WebView学习之二]:使用Web Apps 支持不同分辨率屏幕的相关文章

[WebView学习之二]:使用Web Apps 支持不同分辨率屏

上一篇我们学习了(1.[WebView学习之中的一个]:Web Apps简单介绍),今天我们来继续学习. (博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmjiangqq Email:[email protected] 由于Android设备有非常多分辨率,不一样的屏幕以及像素密度.所以在Web页面的设计过程中,应该考虑网页总能显示合适的大小. 在你为Android设备开发Web页面是,我们须要考虑下面两个因素: 1.:视

Quartz定时任务学习(二)web应用

web中使用Quartz 1.首先在web.xml文件中加入 如下内容(根据自己情况设定) 在web.xml中添加QuartzInitializerServlet,Quartz为能够在web应用中使用,提供了一个QuartzInitializerServlet和一个QuartzInitializerListener,用于在加载web应用时,对quartz进行初始化. <servlet>         <servlet-name>             QuartzInitial

Java嵌入式数据库H2学习总结(二)——在Web应用程序中使用H2数据库

一.搭建测试环境和项目 1.1.搭建JavaWeb测试项目 创建一个[H2DBTest]JavaWeb项目,找到H2数据库的jar文件,如下图所示: H2数据库就一个jar文件,这个Jar文件里面包含了使用JDBC方式连接H2数据库时使用的驱动类,将"h2-1.4.183.jar"加入到[H2DBTest]项目中,如下图所示: 1.2.开启H2数据库 进入到h2\bin目录,如下图所示: 确保H2数据库使用的8082端口没有被其他应用程序占用,正常启动之后输入"http://

log4net学习手册二 Apache的log4net?支持的框架

以下内容是Apache log4net官网技术文档通过google翻译而来 http://logging.apache.org/log4net/release/features.html 对.NET框架的概述支持的log4net log4net的是建立在许多不同的框架.该框架的每个新版本增加新的功能.为了充分利用这些新特性,我们必须建立log4net的使用适当的框架优势.我们还建立保持与旧版本的框架兼容.重要的是要记住,.NET框架支持向后兼容性,这是一个新版本的框架将运行有针对性的框架的早期版

[WebView学习之六]:Web Apps最佳实践规则

上一篇我们学习了([WebView学习之五]:调试Web Apps),今天我们来继续学习. (博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmjiangqq Email:[email protected] 为移动设备开发Web页面以及Web应用程序(Application)和开发传统的桌面Web浏览器相比存在一些不同的地方以及难点.为了帮助你更好的开发以及为移动设备开发出更加有效的Web应用程序,以下讲到的开发实践规则将会

[WebView学习之三]:使用WebView来创建Apps

上一篇我们学习了([WebView学习之二]:使用Web Apps 支持不同分辨率屏),今天我们来继续学习. (博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmjiangqq Email:[email protected] 假设你想要常见一个Web应用程序(或者不过一个网页)来作为client应用程序的一部分,你能够使用WebView来实现. WebView是继承与AndroidView类,在上面你能够作为Activity

Azure上的Web Apps极其相关服务

一般,我们开发Web应用程序的时候,都需要IT运维人员准备Windows OS或Linux OS的Web Server,安装相应的Web组件,比如IIS, Tomcat等等.然后开发人员把相应的代码部署到Web Server上并进行配置. 对于IT运维人员来说,Web Server是IaaS,IT运维人员需要维护Web Server的操作系统等内容.而对于开发人员来说,Web Server是PaaS,开发人员只需要维护Web Application即可.运维人员关心操作系统OS层面的东西,开发人

1.[WebView学习之一]:Web Apps简介

今天开始我们来学习一下WebView,以及Web Apps开发,主要内容来自Android官方文档以及后面的实战例子讲解. (博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmjiangqq Email:[email protected] 基本上在Android上面我们有两个方式来提供应用程序(Application):1.基于客户端应用程序(还用AndroidSDK开发,在用户设备上面进行安装APK文件),2.基于web应

[WebView学习之五]:调试Web Apps

上一篇我们学习了([WebView学习之四]:迁移到Android4.4版本的WebView),今天我们来继续学习. (博客地址:http://blog.csdn.net/developer_jiangqq),转载请注明. Author:hmjiangqq Email:[email protected] 如果你正在Android4.4或者更高的版本上面测试你的Web应用程序(Application),你可以使用Chrome开发工具进行远程调试你的Web页面,该方法同时也支持Android低版本.