9

こんにちは、私はウェブビューを持っています。ユーザーが水平または垂直にスクロールする必要がないように、それを画面に合わせたいと思います

以前に検索したことがありますが、多くの人が次のことを提案していますが、幅を制限するだけで、ユーザーはまだ垂直にスクロールする必要があります:

engine = (WebView) (findViewById(R.id.webView1));
engine.loadUrl(www.example.com); 
engine.getSettings().setLoadWithOverviewMode(true);
engine.getSettings().setUseWideViewPort(true);

スケーリング方法を使用して別の方法を試しましたが、うまくいきません..... ウィンドウの幅 (1024 ピクセル) を取得し、Web コンテンツの幅も 1024 ピクセルでした!! そのため、スケーリングは機能しませんでした....正しいスケールを取得する方法はありますか?

または....他に方法はありますか?....ありがとうございます!!

// get the window width and height
    Point outSize = new Point();
    getWindowManager().getDefaultDisplay().getSize(outSize);
    width = outSize.x;
    height = outSize.y;
    Log.i("Menuboard", "width: " + Integer.toString(width) + ", height: "
            + Integer.toString(height));

WebViewClient client = new WebViewClient() {

        public void onPageFinished(WebView view, String url) {
            int x = engine.getWidth();
            int y = engine.getHeight();

            Log.i("Menuboard", "web width: " + Integer.toString(x)
                    + ", height: " + Integer.toString(y));

            int scale1 = width * 100/x;
            int scale2 = height * 100/y;

            Log.i("Menuboard", "Scale1: " + Integer.toString(scale1)
                    + ", Scale2: " + Integer.toString(scale2));

            if (scale1 < scale2) {
                engine.setInitialScale(scale1);
                Log.i("Menuboard", "scale1");
            } else if (scale1 > scale2) {
                engine.setInitialScale(scale2);
                Log.i("Menuboard", "scale2: " + Integer.toString(scale2));
            }
        }
    };

    engine = (WebView) (findViewById(R.id.webView1));
    engine.loadUrl(string);
    engine.getSettings().setBuiltInZoomControls(true);
    engine.setPadding(0, 0, 0, 0);
            engine.setWebViewClient(client);

いくつかのメモ:

Web ビューをスケーリングするには:

engine = (WebView) (findViewById(R.id.webView1));
engine.loadUrl(www.example.com);
engine.getSettings().setBuiltInZoomControls(true);
engine.setPadding(0, 0, 0, 0);
engine.setInitialScale(50); // 0 - 100 where 100 is full scale

ウィンドウの幅と高さを取得するには:

Point outSize = new Point();
getWindowManager().getDefaultDisplay().getSize(outSize);
width = outSize.x;
height = outSize.y;
4

2 に答える 2

5

この次の方法を使用します。

webview.getSettings().setUseWideViewPort(true);
webview.getSettings().setLoadWithOverviewMode(true);
于 2015-06-05T08:51:13.577 に答える
2

webview を画面全体に展開するには、アクティビティ レイアウト xml に webview を追加し、 と を に設定しlayout_widthlayout_heightくださいfill_parent。簡単な例を次に示します。

  <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>
于 2013-05-03T05:49:23.417 に答える