51

私が持っているもの: URL から画像を読み込んでいます。私は単にそうします(WebView).loadUrl(imageurl, extraheaders)

私が得るもの:画像は WebView の全幅で表示されず、周囲に空白があります (デスクトップ ブラウザで小さな iamge を開いた場合のように)

私が試したこと: LayoutAlgorithm を SINGLE_COLUMN に設定します。完璧に動作しますが、ズームは機能しません。WebView.getSettings()(理由がわからないで有効にしています。setUseWideViewPort(true);空白スペースなしでロード画像を設定していますが、完全に拡大されています。

4

10 に答える 10

97

このようなこともできます。

imgデータ文字列の先頭 (Web データ形式によって異なります) にCSS スタイルを追加します。

<style>img{display: inline; height: auto; max-width: 100%;}</style>

WebView のデータに対してすばやく実行するために、これを行いました。

WebView content = (WebView) findViewById(R.id.webView1);
content.loadDataWithBaseURL(null, "<style>img{display: inline;height: auto;max-width: 100%;}</style>" + post.getContent(), "text/html", "UTF-8", null);

これは bansal21ankit が言ったこととほとんど同じですが、代わりに、余分な作業をしなくても、HTML 内のすべての画像で機能します。


編集(投稿内容の明確化):

text/html例の代わりに任意の値を指定できますpost.getContent()

ここでの投稿コンテンツは、あるデータ ソースから読み込まれ、特定のコンテンツ内の任意の画像を画面に合わせて作成する部分とtext/html連結されるコンテンツの例にすぎません。style

于 2014-05-14T13:49:34.627 に答える
59

私は同じ問題を抱えていましたが、これを行うとうまくいきました:

Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();

String data = "<html><head><title>Example</title><meta name=\"viewport\"\"content=\"width="+width+", initial-scale=0.65 \" /></head>";
data = data + "<body><center><img width=\""+width+"\" src=\""+url+"\" /></center></body></html>";
webView.loadData(data, "text/html", null);

編集:これは受け入れられた回答として残っているため、より良い解決策があります(以下のすべてのトニーの功績による):

WebView content = (WebView) findViewById(R.id.webView1);
content.loadDataWithBaseURL(null, "<style>img{display: inline;height: auto;max-width: 100%;}</style>" + post.getContent(), "text/html", "UTF-8", null);
于 2012-05-01T09:40:44.967 に答える
42

画面に合わせてwebViewを拡大縮小する必要があります。

 WebView data = (WebView) getViewById(R.id.webview1);
 data.getSettings().setLoadWithOverviewMode(true);
 data.getSettings().setUseWideViewPort(true);
于 2012-05-01T08:28:13.663 に答える
1

これは私にとってはうまくいきます: webView = (WebView) findViewById(R.id.webView); WebSettings webSettings = webView.getSettings(); webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);

于 2015-01-16T14:13:31.460 に答える
0

これで問題が解決すると思います:-

      WebView web;

      web = (WebView) findViewById(R.id.webkit);
      web.setWebViewClient(new Callback());
      web.getSettings().setJavaScriptEnabled(true);
      web.getSettings().setLoadWithOverviewMode(true);
      web.getSettings().setUseWideViewPort(true);
      web.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
      web.setScrollbarFadingEnabled(false);
于 2012-05-01T08:30:36.707 に答える
0

このコードは私のために働く:

String strData = "<head>" + "<style>" + ".smal-video-pnl,.smal-video-thumb,.detail-hldr{margin-left: 0px;margin-right:0px;}" + "</style>" +
            "</head>" + mListItem.get(position).getTitbits();
holder.webViewStatus.loadDataWithBaseURL(null, strData, "text/html", "UTF-8", null);
于 2016-12-16T11:52:50.970 に答える