我有一个全屏Web视图,它的分辨率比屏幕小得多。在仿真器上,它的412x684比1440x2392的屏幕分辨率小3.5倍。在开发工具->配置下,它显示的密度为3.5,所以我认为这必须与它有关,但是该应用似乎以全分辨率运行,而不是网络视图。
我尝试剥离所有可能的东西,以最大程度地减少导致这种情况的发生,并且似乎无济于事。
通过显示如下所示的getMeasuredWidth / Height函数,我将其范围缩小到了Webview内容
Toast.makeText(getApplicationContext(), "width "+Integer.toString(mWebView.getMeasuredWidth())+" height "+Integer.toString(mWebView.getMeasuredHeight()), Toast.LENGTH_SHORT).show();
这是相关的网络视图代码
rlp = new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT );
relativeLayout.setLayoutParams(rlp);
//relativeLayout.setFillViewport(true);
// relativeLayout.setGravity(Gravity.FILL);
mWebView = new WebView(this);
mWebView.setScrollContainer(false);
mWebView.setInitialScale(100);
mWebView.setPadding(0, 0, 0, 0);
mWebView.setLayoutParams(rlp);
relativeLayout.addView(mWebView);
//enable remote debugging
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
mWebView.setWebContentsDebuggingEnabled(true);
}
WebSettings webSettings = mWebView.getSettings();
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
webSettings.setJavaScriptEnabled(true);
webSettings.setBuiltInZoomControls(false);
webSettings.setSupportZoom(false);
webSettings.setAllowFileAccess(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
webSettings.setMediaPlaybackRequiresUserGesture(false);
}
webSettings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
在html方面,我有一个很好的衡量标准,无论有没有,它都无济于事
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no" />
我以此测试html中的分辨率(首先我注意到图片模糊)
document.body.innerHTML=window.innerWidth+"x"+window.innerHeight;
我没有关于样式或清单的Web视图的任何信息
如何获取与屏幕分辨率匹配的Web视图分辨率?
答案 0 :(得分:0)
认为android有一个节省内存的功能,是否可以将它们编码为图像,然后在android中解码?绕过网络视图的任何处理。
一些服务提供商也会压缩传输中的图像。确保不是这种情况。