android开发分享Android Webview – 网页应该适合设备屏幕

我已经尝试以下来适应基于设备屏幕大小的网页。

mWebview.setInitialScale(30); 

然后设置元数据视口

 <meta name="viewport" content="width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=0;"/> <meta name="viewport" content="width=device-width, target-densityDpi=medium-dpi"/> 

但没有任何作品,网页不固定到设备的屏幕大小。

谁能告诉我如何得到这个?

    您必须计算您需要手动使用的比例,而不是设置为30。

     private int getScale(){ Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); int width = display.getWidth(); Double val = new Double(width)/new Double(PIC_WIDTH); val = val * 100d; return val.intValue(); } 

    然后使用

     WebView web = new WebView(this); web.setPadding(0, 0, 0, 0); web.setInitialScale(getScale()); 

    你可以使用这个

      WebView browser = (WebView) findViewById(R.id.webview); browser.getSettings().setLoadWithOverviewMode(true); browser.getSettings().setUseWideViewPort(true); 

    这根据屏幕大小修复了大小。

    朋友们,

    我发现了很多重要的信息。 但唯一的办法就是这样:

     webView = (WebView) findViewById(R.id.noticiasWebView); webView.setInitialScale(1); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setUseWideViewPort(true); webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); webView.setScrollbarFadingEnabled(false); webView.loadUrl("http://www.resource.com.br/"); 

    我正在使用Android 2.1,因为这种设备来自公司。 但我使用每一个信息的一部分来解决我的问题。

    谢谢!

    尝试使用这个HTML5技巧

    而如果你的Android版本是2.1或更高版本

      WebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); 

    这些为我工作,并适合WebView屏幕宽度:

     // get from xml, with all size set "fill_parent" webView = (WebView) findViewById(R.id.webview_in_layout); // fit the width of screen webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); // remove a weird white line on the right size webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 

    感谢以上build议和日食Web视图中的白线

    所有你需要做的只是简单的

     webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); webView.getSettings().setLoadWithOverviewMode(true); webView.getSettings().setUseWideViewPort(true); 

    当我使用这个代码时,我有同样的问题

     webview.setWebViewClient(new WebViewClient() { } 

    所以可能你应该删除它在你的代码
    并记住为您的webview添加3种模式

      webview.getSettings().setJavaScriptEnabled(true); webview.getSettings().setLoadWithOverviewMode(true); webview.getSettings().setUseWideViewPort(true); 

    这根据屏幕大小修复了大小

    这些设置适用于我:

     wv.setInitialScale(1); wv.getSettings().setLoadWithOverviewMode(true); wv.getSettings().setUseWideViewPort(true); wv.getSettings().setJavaScriptEnabled(true); 

    setInitialScale(1)在我的尝试中失踪。

    虽然文档说,如果setUseWideViewPort设置为true0将缩小所有的出路,但0不适合我,我不得不设置1

     WebView browser = (WebView) findViewById(R.id.webview); browser.getSettings().setLoadWithOverviewMode(true); browser.getSettings().setUseWideViewPort(true); browser.getSettings().setMinimumFontSize(40); 

    这对我很好,因为通过.setLoadWithOverViewMode和.setUseWideViewPort将文本大小设置为非常小。

    这看起来像一个XML问题。 打开包含Web-View的XML文档。 删除顶部的填充代码。

    然后在布局中添加

     android:layout_width="fill_parent" android:layout_height="fill_parent" 

    在Web-View中,添加

     android:layout_width="fill_parent" android:layout_height="fill_parent" 

    这使Web-View适合设备屏幕。

     int PIC_WIDTH= webView.getRight()-webView.getLeft(); 

    在这种情况下,您必须在您的webView中使用HTML。 我解决了这个使用下面的代码

     webView.loadDataWithBaseURL(null, "<!DOCTYPE html><html><body style = "text-align:center"><img src= " + "http://www.koenvangorp.be/photos/2005_09_16-moon_2000.jpg" + " alt="pageNo" width="100%"></body></html>", "text/html", "UTF-8", null); 

    Display对象的getWidth方法已被弃用。 覆盖onSizeChanged以获取WebView的大小。

     WebView webView = new WebView(context) { @Override protected void onSizeChanged(int w, int h, int ow, int oh) { // if width is zero, this method will be called again if (w != 0) { Double scale = Double.valueOf(w) / Double.valueOf(WEB_PAGE_WIDTH); scale *= 100d; setInitialScale(scale.intValue()); } super.onSizeChanged(w, h, ow, oh); } }; 

     webview.setInitialScale(1); webview.getSettings().setLoadWithOverviewMode(true); webview.getSettings().setUseWideViewPort(true); webview.getSettings().setJavaScriptEnabled(true); 

    将工作,但记得删除像这样的东西:

     <meta name="viewport" content="user-scalable=no"/> 

    如果存在于html文件中或更改user-scalable = yes,则不会。

    这将有助于根据网页调整模拟器:

     WebView wb; //CALL THIS METHOD wb.setInitialScale(50); 

    您可以按照上面所示的百分比设置初始比例。

    理论上来说是:

     settings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); 

     settings.setUseWideViewPort(false) 

    修复了这个问题,把内容包装到屏幕上。 但是NARROW_COLUMNS已经被弃用了。 我build议你阅读下面的这个线索,详细探讨这个问题: https : //code.google.com/p/android/issues/detail?id=62378

    自display.getWidth();更改为由danh32的答案; 现已被弃用。

     private int getScale(){ Point p = new Point(); Display display = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); display.getSize(p); int width = px; Double val = new Double(width)/new Double(PIC_WIDTH); val = val * 100d; return val.intValue(); } 

    然后使用

     WebView web = new WebView(this); web.setPadding(0, 0, 0, 0); web.setInitialScale(getScale()); 

     WebView webView = (WebView)findViewById(R.id.web_view); webView.setInitialScale((int) getResources().getDimension(R.dimen._50sdp)); // getActivity(). if you are at Fragment webView.getSettings().setLoadsImagesAutomatically(true); webView.getSettings().setJavaScriptEnabled(true); webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); webView.loadDataWithBaseURL(null,here comes html content,"text/html","UTF-8", null); webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setSupportZoom(true); webView.getSettings().setDisplayZoomControls(true); webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR); 

      以上就是android开发分享Android Webview – 网页应该适合设备屏幕相关内容,想了解更多android开发(异常处理)及android游戏开发关注(计算机技术网)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ctvol.com/addevelopment/520579.html

      (0)
      上一篇 2020年12月7日
      下一篇 2020年12月7日

      精彩推荐