`
wenzongliang
  • 浏览: 466682 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

viewport与android的webview

 
阅读更多

随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用

是最好的选择。然而,每一款手机有不同的分辨率,不同屏幕大小,如何使我们开发出来的应用或页面大小能适合各种高端手

机使用呢?学习html5 viewport的使用能帮你做到这一点……
webView控件要启用支持viewport属性。例如android中

webSettings.setUseWideViewPort(true);
设置是否支持viewport属性。设置为true后,如果html中没有明码定义viewport,webview则用默认的viewport
width=html里定义的宽
initial-scale = 1.0
user-scalable = yes
target-densitydpi = medium-dpi

webSettings.setLoadWithOverviewMode(true);
以概览模式加载,必须以webSettings.setUseWideViewPort(true)为前提。以概览模式加载必须
width=与html里定义的宽一致或者为device-width。(任意测试后感觉是一样的效果)
initial-scale = 不定义
user-scalable = yes

有时候还不能概览浏览时因为
minimum-scale默认值太大可以调小一点。

viewport 的width只能大于webview宽。


设置时不能自相矛盾,例如:
webSettings.setUseWideViewPort(true)
user-scalable = no
或者设置了
initial-scale =的具体值。这样设置不会以概览方式显示的。

 

viewport 的width只能大于或等于html宽,否则都是无效值。

viewport 的width只能大于webview宽的以概览模式加载也会出现滚动条。

 

viewport 语法介绍:
01  <!-- html document -->
02  <meta name="viewport"
03      content="
04          width = [pixel_value | device-width ] ,
05          height = [pixel_value | device-height] ,
06          initial-scale = float_value ,
07          minimum-scale = float_value ,
08          maximum-scale = float_value ,
09          user-scalable = [yes | no] ,
10          target-densitydpi = [dpi_value | device-dpi | high-dpi | medium-dpi | low-dpi]
11      "
12  />
width
控制 viewport 的大小,可以指定的一个值或者特殊的值,如 device-width 为设备的宽度(单位为缩放为 100% 时的 CSS 的

像素)。

height
和 width 相对应,指定高度。

target-densitydpi
一个屏幕像素密度是由屏幕分辨率决定的,通常定义为每英寸点的数量(dpi)。Android支持三种屏幕像素密度:低像素密度

,中像素密度,高像素密度。一个低像素密度的屏幕每英寸上的像素点更少,而一个高像素密度的屏幕每英寸上的像素点更多

。Android Browser和WebView默认屏幕为中像素密度。

下面是 target-densitydpi 属性的 取值范围

device-dpi –使用设备原本的 dpi 作为目标 dp。 不会发生默认缩放。
high-dpi – 使用hdpi 作为目标 dpi。 中等像素密度和低像素密度设备相应缩小。
medium-dpi – 使用mdpi作为目标 dpi。 高像素密度设备相应放大, 像素密度设备相应缩小。 这是默认的target density.
low-dpi -使用mdpi作为目标 dpi。中等像素密度和高像素密度设备相应放大。
<value> – 指定一个具体的dpi 值作为target dpi. 这个值的范围必须在70–400之间。
1  <!-- html document -->
2  <meta name="viewport" content="target-densitydpi=device-dpi" />
3  <meta name="viewport" content="target-densitydpi=high-dpi" />
4  <meta name="viewport" content="target-densitydpi=medium-dpi" />
5  <meta name="viewport" content="target-densitydpi=low-dpi" />
6  <meta name="viewport" content="target-densitydpi=200" />
为了防止Android Browser和WebView 根据不同屏幕的像素密度对你的页面进行缩放,你可以将viewport的target-densitydpi

设置为 device-dpi。当你这么做了,页面将不会缩放。相反,页面会根据当前屏幕的像素密度进行展示。在这种情形下,你还

需要将viewport的width定义为与设备的width匹配,这样你的页面就可以和屏幕相适应。

initial-scale
初始缩放。即页面初始缩放程度。这是一个浮点值,是页面大小的一个乘数。例如,如果你设置初始缩放为“1.0”,那么,

web页面在展现的时候就会以target density分辨率的1:1来展现。如果你设置为“2.0”,那么这个页面就会放大为2倍。

maximum-scale
最大缩放。即允许的最大缩放程度。这也是一个浮点值,用以指出页面大小与屏幕大小相比的最大乘数。例如,如果你将这个

值设置为“2.0”,那么这个页面与target size相比,最多能放大2倍。

user-scalable
用户调整缩放。即用户是否能改变页面缩放程度。如果设置为yes则是允许用户对其进行改变,反之为no。默认值是yes。如果

你将其设置为no,那么minimum-scale 和 maximum-scale都将被忽略,因为根本不可能缩放。

所有的缩放值都必须在0.01–10的范围之内。

例:

(设置屏幕宽度为设备宽度,禁止用户手动调整缩放)

 <meta name="viewport" content="width=device-width,user-scalable=no" />

(设置屏幕密度为高频,中频,低频自动缩放,禁止用户手动调整缩放)

<meta name="viewport" content="width=device-width,target-densitydpi=high-dpi,initial-scale=1.0, minimum-

scale=1.0, maximum-scale=1.0, user-scalable=no"/>

分享到:
评论

相关推荐

    android Webview欢迎界面

    为了实现Webview与Android应用的交互,我们可以使用`addJavascriptInterface`方法,将Java对象暴露给JavaScript调用。例如,当用户完成所有引导页后,可以通过JavaScript触发一个Java方法关闭欢迎界面: ```java ...

    android WebView结合jQuery mobile之基础:整合篇

    本篇文章将深入探讨如何将WebView与jQuery Mobile整合,以便为用户提供更丰富的交互体验。jQuery Mobile是一个轻量级、触控优化的前端框架,用于构建响应式移动Web应用程序。 首先,我们需要在Android项目中引入...

    html5技术登录上海

    - 讲解如何利用Viewport与Android WebView进行适配。 4. **Android 定制化浏览器开发**: - 介绍如何使用Android SDK与Web Applications功能。 - 利用WebView组件打造专业的定制化浏览器。 - 分享“仕橙部落...

    android WebView加载html5介绍

    总之,通过合理使用`viewport`、CSS媒体查询以及JavaScript,我们可以有效地解决`WebView`加载HTML5页面在多分辨率Android设备上的适配问题,从而提供一致且优质的用户体验。在实际开发中,应根据项目需求和目标用户...

    详解Android WebView加载html片段

    Android WebView加载html片段详解 Android WebView是一种基于Webkit引擎的浏览器组件,经常用于加载HTML页面或片段。今天,我们将详细介绍如何使用Android WebView加载html片段,并对其进行详细的分析。 WebView...

    android_中webView控件详解

    ### Android中的WebView控件详解 #### 一、概述 WebView是Android系统提供的一个重要的控件,主要用于在应用程序中展示Web内容。它不仅能够加载并显示HTML文档,还支持JavaScript脚本执行,允许开发者通过Java与...

    WebApp里的Meta标签大全

    它不仅可以帮助开发者控制页面的布局与展示效果,还能优化SEO、提升用户体验。本文将详细介绍WebApp中常用的`&lt;meta&gt;`标签及其应用场景,帮助前端开发者更好地理解并运用这些标签。 #### 二、Viewport Meta标签 `...

    讲解如何利用HTML5开发android教程.docx

    为了让WebView更接近浏览器体验,需要处理用户交互,如覆盖系统回退键,以及启用JavaScript与Android原生代码的交互。在Android中定义接口,并在JavaScript中调用。同时,通过`WebChromeClient`处理JavaScript的警告...

    解决Android软键盘弹出覆盖h5页面输入框问题

    1. 使用meta viewport标签,设置 initial-scale 和 maximum-scale 属性,以限制软键盘弹出时页面的缩放程度。 2. 使用 CSS media queries,根据软键盘弹出时页面的宽高比,调整页面布局和样式。 3. 使用 JavaScript ...

    Android 使用PDF.js浏览pdf的方法示例

    Android的WebView做不到ios的WebView那样可以很方便的直接预览pdf文件。要实现利用WebView预览pdf我们可以使用谷歌文档服务: mWebView.loadUrl(http://docs.google.com/gviewembedded=true&url= + pdfUrl); 这种...

    Android应用开发中WebView的常用方法笔记整理

    在Android应用开发中,WebView是一个非常重要的组件,它允许开发者在应用程序内嵌入网页内容,实现与网页的交互。以下是一些关于WebView的常用方法及其详细说明: **1. 加载URL** ```java WebView.loadUrl(...

    HTML5开发Android应用程序概述.ppt

    Android与HTML5的融合主要体现在通过WebView组件来嵌入HTML5网页内容,从而实现原生应用的功能。WebView是一个可以在Android应用中展示网页的组件,它可以加载并执行HTML5代码,让开发者能够利用HTML、CSS和...

    Android应用开发新路线(用HTML5开发Android应用)

    viewport标签中可以设置视窗的宽度、高度、缩放比例以及目标设备密度等,确保网页在不同分辨率的Android设备上都能有良好的用户体验。 构建HTML5应用程序时,开发者可以利用WebView组件在Android设备上加载HTML5...

    基于HTML5的Android开发

    5. **CSS控制设备密度**:Android浏览器和WebView支持CSS媒体查询中的`-webkit-device-pixel-ratio`属性,可以用来根据不同密度的屏幕应用不同的样式。例如: ```html (-webkit-device-pixel-ratio: 1.5)" href=...

    HTML5开发Android应用程序概述

    #### Android与HTML5的融合 在Android平台上,HTML5的应用主要通过WebView组件实现。WebView是一个可以用来显示网页内容的控件,它能够加载并渲染HTML文档,同时执行其中的JavaScript代码。这意味着开发者可以利用...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Webview window in android used to load pages just works like browser, as well as there is only one webview running at the same time. (2)Cross-domain data interaction. Different webviews can not share...

    深入理解移动前端开发之viewport

    Viewport可以简单理解为移动设备屏幕上用于展示网页的实际可视区域,通常指的是浏览器(或App内的Webview)用于渲染网页的那部分空间。然而,viewport的大小并不总是与浏览器可视区域相同,它可能大于或小于可视区域...

    解决PhoneGap不支持viewport的几种方法

    这个设置允许 WebView 使用 `viewport` 标签,但需要注意的是,此方法可能不会对所有 Android 设备生效。 2. **Android 平台的解决方案**: - **方法一**:直接修改 `CordovaWebView.java` 文件。在 `settings....

Global site tag (gtag.js) - Google Analytics