我试图让 WebView 具有与 android 浏览器类似的行为。浏览器会以尝试使其宽度适合屏幕的方式打开所有页面。但是,WebView 的默认行为是以 100% 像素比例开始,因此它从左上角开始放大。
过去几个小时我一直在试图找到一种方法让 WebView 像在浏览器中那样将页面缩放到屏幕上,但我没有任何运气。有没有人找到办法做到这一点?
我看到了一个名为 setLoadWithOverviewMode 的设置,但它似乎根本没有做任何事情。我还尝试了 setInitialScale,但在不同的屏幕尺寸和网页尺寸上,它们不会像浏览器缩放那样优雅。
有人有线索吗?
谢谢
编辑:当手机处于横向而不是纵向时,Brian 的方法似乎有效。在纵向它很接近,但仍然不适合页面中的整个屏幕。我开始这个赏金是希望有一种可靠的方法来获得初始缩放以使页面适合任何方向或屏幕尺寸的页面宽度。
最佳答案
以下代码加载桌面版的谷歌主页,完全缩小以适合我在 854x480 像素屏幕上的 Android 2.2 中的 webview
。当我重新定位设备并以纵向或横向重新加载时,页面宽度每次都完全适合 View 。
BrowserLayout.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<WebView android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
浏览器.java:
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
public class Browser extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.BrowserLayout);
String loadUrl = "http://www.google.com/webhp?hl=en&output=html";
// initialize the browser object
WebView browser = (WebView) findViewById(R.id.webview);
browser.getSettings().setLoadWithOverviewMode(true);
browser.getSettings().setUseWideViewPort(true);
try {
// load the url
browser.loadUrl(loadUrl);
} catch (Exception e) {
e.printStackTrace();
}
}
}
关于android - 如何设置 webview 的初始缩放/宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3808532/