3

以下に示すように、写真のようにwebviewの画像を修正したいだけです。私はそれを達成するために何かをしました.HTC One、Samsung S2-S3-S4などの新しい種類のハンドセットで実際に動作します.しかし、Galaxy Aceのような小さな画面のデバイスでは動作せず、非常に小さく見えます. たとえば、画像の Android 画像は中央に表示されますが、非常に小さく表示されます。

これが私がしたことです

    webView = (WebView)findViewById(R.id.webView);
    WebSettings settings = webView.getSettings();
    settings.setUseWideViewPort(true);
    settings.setLoadWithOverviewMode(true);
    settings.setJavaScriptEnabled(true);
    String data = "<body><center><img width=\""+width+"px\" height=\""+height+"px\" src=\"" + url + "\" /></center></body></html>";
    webView.loadData(data, "text/html", null);

幅と高さの計算

//linearWebview is the parent of webview, I calculated its width and height and set the image dimensions according to that values.
linearWebview.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            width = linearWebview.getWidth();
            height = linearWebview.getHeight();
        }
    });

私の質問は、なぜ小さな画面のデバイスでは機能しないのか、どうすればその問題を解決できるのかということです。

ここに画像の説明を入力

4

4 に答える 4

2

この方法を試してください

非常に多くの画面サイズがあり、Android ではこのような相対サイズを使用する解像度があるため、Pixel で width fix を指定しないでください。

String data = "<body><center><img height=\"auto\" style=\"max-width:100\\%\"; src=\"" + url + "\" /></center></body></html>";
webView.loadData(data, "text/html", null);

ここでは、幅 100% と高さ "auto" を指定しています。縦横比を維持し、画像が引き伸ばされないようにします。

于 2013-09-25T05:43:05.840 に答える
1

コメントしますが、まだ十分な評判がありません。ごめん。WebView のサイズが正しくない、または WebView 内の画像に問題がありますか? それが webview の場合は、別のビューでラップしてみてください。小さい画面サイズを使用している場合、別のサイズの画像を使用している可能性があり、それを引き伸ばすのではなく、そこに配置するだけです。fill_parent はそれを伸ばしてから、ラッパーを必要なサイズに設定する必要があります。

于 2013-09-26T21:07:49.230 に答える
0

こうすれば..

String data = "<body><center><img height=\"auto\" width=\"100\\% style=\"min-height:30\\%\"; src=\"" + url + "\" /></center></body></html>";
webView.loadData(data, "text/html", null);

画像の minHeight をパーセンテージで設定できます。これがお役に立てば幸いです。

于 2013-09-27T06:10:03.990 に答える