0

コードで webview を作成します。この webview では、写真を表示します。今、私は2つの質問があります。私の写真の解像度は1381x1829で、この写真の一部しか見えないため、画像をフルサイズで表示するにはどうすればよいですか。そして2番目。コードでわかるように、アセットから画像を読み込みますが、sd カードから画像を読み込みたいです。どうすればそれができますか?

これはコードです:

    WebView web = new WebView(getContext());
web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setBuiltInZoomControls(true);
web.loadUrl("file:///android_asset/lj.png");


addView(web);
4

4 に答える 4

1

このメソッドwebview.getSettings().setBuiltInZoomControls(true)を使用すると、マルチタッチスクリーン以外の組み込みのズームコントロールを実装できます。

このコードを使用して、SDカードからWebビューまでどこからでも画像をロードできます。つまり、複数の場所から複数の画像をロードしたい場合です。

String base = Environment.getExternalStorageDirectory().getAbsolutePath().toString() + "/Your/Folder";
String imagePath = "file:/"+ base + "/test.jpg";
String html = "<html><head></head><body><img src=\""+ imagePath + "\"></body></html>";
mWebView.loadData(html, "text/html","utf-8");

しかし、同じ親フォルダの下に存在する画像をロードしたい場合、これはトリックを行います

String imagePath = "test.jpg";
String html = "<html><head></head><body><img src=\""+ imagePath + "\"></body></html>";
mWebView.loadDataWithBaseURL("file:///mnt/sdcard/Your/Folder/", html, "text/html","utf-8",null);

注意してください。1600x1840のような高解像度の画像をwebviewに読み込もうとすると、webviewはメモリ使用量を維持するために画像の解像度を下げ、画像の見栄えが悪くなります。

于 2012-07-10T08:05:39.573 に答える
1

これを HTML に追加します。

<style type='text/css'>
   img {max-width: 100%;height:initial;} div,p,span,a {max-width: 100%;}
   </style>

これにより、画像が画面サイズに合わせて拡大縮小されます。

于 2012-07-11T09:14:43.033 に答える
0

デフォルトのパディングを削除するには - スタイルの設定を忘れないでください:

<html><head></head><body style="padding:0; margin:0;"><img src=""+ gifUrl + ""
width="100%"></body></html>
于 2014-10-02T00:35:30.350 に答える