0

プロジェクトの場合、ユーザーが WebView でズームインおよびズームアウトできるようにしたいのですが、ユーザーが画像をズームアウトして、下部に空白が表示されるようにしたくありません(WebView はmatch_parent、 )。widthheight

言い換えれば、幅ではなく画像の高さに関連する最大ズーム/スケールをwebviewに配置したいと思います(私が今持っているもの)。

どうすればそのような機能を実現できますか?

4

4 に答える 4

2

通常、アプリをすべてのデバイスで一貫して動作させるには、次のように設定する必要があります。

this.appView.getSettings().setUseWideViewPort(true); this.appView.getSettings().setLoadWithOverviewMode(true); this.appView.getSettings().setSupportZoom(true); this.appView.getSettings().setDefaultZoom(ZoomDensity.FAR); this.appView.getSettings().setBuiltInZoomControls(true); this.appView.setInitialScale(0);

ここで、viewPort メタ タグを追加する必要があります。

<meta name="viewport" content="width=640,height=device-height,target-densityDpi=device-dpi,minimum-scale=1" />

minimum-scale好みに合わせて属性を変更して、 最適なものを見つけることができます。

ただし、デバイスの向きを変えて縦向きまたは横向きにリロードすると、問題が発生することがあります。

そのために、通常は次のコードを使用します。このコードは、デスクトップ バージョンの Google ホームページを読み込み、完全にズームアウトしてwebview.

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>

Browser.java: :

android.app.Activity をインポートします。android.os.Bundle をインポートします。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();
    }
}

}

ここでsetUseWideViewPort(true)ビューポート設定をロードし、目的のロールにスケーリングするか、使用できますsetLoadWithOverviewMode()が、API 7 以降でのみ機能します。

于 2013-06-07T10:01:37.207 に答える
1

<meta name='viewport' content='target-densitydpi=device-dpi,initial-scale=1,minimum-scale=1,user-scalable=yes'/> これを、webview に表示する html コンテンツに追加します。

ここで、必要に応じて minimum-scale=1 を変更できます

于 2013-06-07T09:52:25.507 に答える
0

webSettingsクラスを確認してください。例:

webview.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
于 2013-06-07T09:52:38.253 に答える
0

これにはWebSettings.ZoomDensity関数を使用できます。それを使用して、setDefaultZoom を設定できます。

于 2013-06-07T09:55:36.997 に答える