android jelly bean不支持target-densityDpi

时间:2012-09-13 08:42:35

标签: android meta-tags viewport dpi android-4.2-jelly-bean

因为果冻豆,我的webapp和webview中的视口渲染都有问题。

通常我会使用带有此参数的元视口来修复我的内容并设计好:

name="viewport" content=" width=device-width; 
                initial-scale=1.0; 
                maximum-scale=1.0; 
                user-scalable=no;
                target-densityDpi=device-dpi;

但是对于Jelly Bean,属性“target-densityDpi”似乎不受支持或忽略。 在星系连接(720px * 1280,设备像素比为2),窗口宽度大小为360px 在galaxy nexus S(480 * 800,设备像素比为1.5)上,窗口宽度大小为360px。

我没有在Android开发者网站上找到有关此主题的任何帮助或信息。

那么,目标密度真的被忽略了吗? 一个技巧可以强制deviceDPi? 或者我们被迫使用中密度屏幕,默认情况下

如果有人有解决方案? Thanx!

2 个答案:

答案 0 :(得分:0)

这是一个老问题,但问题可能在于使用分号。将分号更改为常规逗号并删除最后一个分号。

我在我的应用程序中使用以下viewport metatag,它在Jelly Bean中正常工作。

<meta name="viewport" content="width=device-width, target-densitydpi=device-dpi, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">

答案 1 :(得分:0)

我使用此jQuery在最新的Chrome for Android上实现了同样的目标:

<meta content='user-scalable=no, initial-scale=1, width=device-width' id='viewport' name='viewport'>

var viewPortScale = 1 / window.devicePixelRatio;

$('#viewport').attr('content', 'user-scalable=no, initial-scale='+viewPortScale+', width=device-width');

这会将初始比例视口元标记设置设置为1 CSS Pixel == 1 Device Pixel的正确比例。

您不能使用'width ='+ screen.width,因为screen.width不会返回物理像素尺寸。我尝试在Chrome中的Nexus 7上使用http://responsejs.com/labs/dimensions/,所有数字都是视口像素。