我有两个堆叠在一起的webViews。在底部的webView,webViewB中,我正在显示一个视口大小为321x60的简单HTML页面和一个相同尺寸的图像。最初我将webViewB高度设置为60,但这太小并导致图像被切断。那么我将webViewB高度设置为60 *密度:
int scaledBottomHeight = (int)(60 * getResources().getDisplayMetrics().density);
RelativeLayout.LayoutParams bottomLayoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, scaledBottomHeight);
webViewB.getSettings().setUseWideViewPort(true); // So viewport meta tag will work
webViewB.getSettings().setLoadWithOverviewMode(true);
webViewB.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
webViewB.setLayoutParams(bottomLayoutParams);
在密度为1.5(高度为90)的Galaxy S2上,这种方法非常完美。在没有任何截止或额外空间的情况下,可以看到图像的每个部分。在密度为3.0(高度为180)的Galaxy S4上,图像仍然被切断。在看起来正确之前,我必须将webViewB的高度增加20个像素。
如果我将setUseWideViewPort更改为false,则图像高度会正确显示,但宽度太窄,两边都有空白区域。这是我的HTML:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=321, height=60, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=false"/>
<title></title>
</head>
<body style="margin:0;padding:0;">
<div style="height:60px;"><img src="img-963x180.png" width="321" height="60" alt=""/></div>
</body>
</html>
关于为什么我的图片在webViewB中被截断以及我可以做些什么来纠正它的任何想法?