当前位置:  开发笔记 > 编程语言 > 正文

Android Webview - 网页应该适合设备屏幕

如何解决《AndroidWebview-网页应该适合设备屏幕》经验,为你挑选了10个好方法。

我已尝试以下内容根据设备屏幕大小调整网页.

mWebview.setInitialScale(30);

然后设置元数据视口

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

这可以根据屏幕大小修复大小.


这会占据屏幕,但不允许您进行放大/缩小.这个问题可以改进吗?我知道在IOS上这是可能的.
要添加缩放,请添加以下内容:webview.getSettings().setBuiltInZoomControls(true); .webview.getSettings()setDisplayZoomControls(假);

2> danh32..:

您必须计算手动使用的比例,而不是设置为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());


什么是PIC_WIDTH?
谢谢你的回复,你说得对,它有效.但我有不同的问题.我没有加载图片,在webview中加载网页,所以如何找出网页宽度(PIC_WIDTH).
PIC_WIDTH是我事先知道的常量,因为我只是在assets文件夹中显示一个图像.正如我上面所说,我不知道如何获得实际网页的宽度.
只有这个解决方案在Android 4.4上运行良好

3> 小智..:

朋友们,

我发现了很多重要信息.但是,唯一适用于我的方式就是这样:

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,因为该公司提供的设备类型.但我使用每个信息的一部分解决了我的问题.

谢谢!



4> Doc..:

这些设置对我有用:

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

我的尝试中缺少setInitialScale(1).

虽然文档说如果setUseWideViewPort设置为true0将完全缩小,但0对我不起作用,我必须设置1.



5> 小智..:

试试这个HTML5提示

http://www.html5rocks.com/en/mobile/mobifying.html

如果您的Android版本为2.1或更高版本,请使用此功能

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


不幸的是他们不赞成这个,这个解决方案在Galaxy S5上失败了

6> Muhammad Aam..:

你需要做的就是简单

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



7> Nezneika..:

这些对我有用,并使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);  

感谢eclipse Web视图中的上述建议和白线


似乎现在不推荐使用SINGLE_COLUMN http://developer.android.com/reference/android/webkit/WebSettings.LayoutAlgorithm.html

8> 小智..:

我使用此代码时遇到同样的问题

webview.setWebViewClient(new WebViewClient() {
}

也许你应该在你的代码中删除
并记得为你的webview添加以下3种模式

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

这可以根据屏幕大小修复大小


@shahzainali你可以缩放你的webview吗?

9> 小智..:
WebView browser = (WebView) findViewById(R.id.webview);
browser.getSettings().setLoadWithOverviewMode(true);
browser.getSettings().setUseWideViewPort(true);
browser.getSettings().setMinimumFontSize(40);

这对我很有用,因为.setLoadWithOverViewMode和.setUseWideViewPort将文本大小设置得非常小.



10> Qadir Hussai..:

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

webView.loadDataWithBaseURL(null,
                "\"pageNo\"",
                "text/html", "UTF-8", null);

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有