Android WebView的分辨率比屏幕低约3.5倍

时间:2019-05-10 20:08:33

标签: android webview

我有一个全屏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视图分辨率?

1 个答案:

答案 0 :(得分:0)

认为android有一个节省内存的功能,是否可以将它们编码为图像,然后在android中解码?绕过网络视图的任何处理。

一些服务提供商也会压缩传输中的图像。确保不是这种情况。