Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 棒棒糖上的WebView使用错误(桌面缩放)。怎么办?_Android_Android Webview - Fatal编程技术网

Android 棒棒糖上的WebView使用错误(桌面缩放)。怎么办?

Android 棒棒糖上的WebView使用错误(桌面缩放)。怎么办?,android,android-webview,Android,Android Webview,在我的应用程序中,我有一个WebView来显示一些简单的html文件。我这样做是因为HTML使我能够应用一些格式、图像等。在下面的Android版本中,棒棒糖可以正常工作。内容按预期显示 另一方面,在带有高清屏幕的棒棒糖设备上存在一个问题。显示文本和图像,但它们非常小。好像WebView会认为它是在这样一个分辨率的台式机上。为了更好地理解,我提供了一个屏幕快照片段: 我将html文件放在资产文件夹中,并使用以下内容显示: webView.loadUrl(file:///android_asse

在我的应用程序中,我有一个WebView来显示一些简单的html文件。我这样做是因为HTML使我能够应用一些格式、图像等。在下面的Android版本中,棒棒糖可以正常工作。内容按预期显示

另一方面,在带有高清屏幕的棒棒糖设备上存在一个问题。显示文本和图像,但它们非常小。好像WebView会认为它是在这样一个分辨率的台式机上。为了更好地理解,我提供了一个屏幕快照片段:

我将html文件放在资产文件夹中,并使用以下内容显示: webView.loadUrl(file:///android_asset/myhtmlfile.htm); 我的hrml文件有css和pt单位(不是px)中定义的字体大小

我一直在寻找解决办法,我尝试了很多事情

我已经在我的html中按照

我试过我认为以上所有可能的组合。 更令人费解的是,有时内容会以正确的大小显示。我把活动开得很小。我在其他时间参加活动,有时还可以。我只在棒棒糖装置上观察到了这一点。 是否有其他我不知道的设置?
如何设置webView以正确显示内容?

我也有这个问题,我解决了如下问题。首先我检查设备的密度,根据密度,缩放webView

 float deviceDensity = getResources().getDisplayMetrics().density;
     Log.i("device density", ""+deviceDensity);

     /**
      *  check the android version and if it is Lollipop or upper version then I scaled
      *  the webView according to the density
      */
     int currentapiVersion = android.os.Build.VERSION.SDK_INT;
        if (currentapiVersion >= android.os.Build.VERSION_CODES.LOLLIPOP){
            int scaleLevel = (int) (100 * deviceDensity);
             webView.setInitialScale(scaleLevel);
        }

我在三星S6 Edge上进行了测试,效果非常好。

您可以为WebView设置initialScale。@greenapps这是在meta标签中设置的。是的,我当然看到了。但你不想换一种方式试试吗?对我来说这很有效<代码>webView.setInitialScale(150)你找到解决方法了吗?
webView.getSettings().setTextZoom(100);
webView.getSettings().setUseWideViewPort(false);
webView.getSettings().setLoadWithOverviewMode(true);
 float deviceDensity = getResources().getDisplayMetrics().density;
     Log.i("device density", ""+deviceDensity);

     /**
      *  check the android version and if it is Lollipop or upper version then I scaled
      *  the webView according to the density
      */
     int currentapiVersion = android.os.Build.VERSION.SDK_INT;
        if (currentapiVersion >= android.os.Build.VERSION_CODES.LOLLIPOP){
            int scaleLevel = (int) (100 * deviceDensity);
             webView.setInitialScale(scaleLevel);
        }