2

URLから画像をダウンロードして表示するアプリがあります。これは使用して正常に動作します

URLConnection conn = urls[i].openConnection();
conn.connect();
if(conn.getContentLength() > 0)
is = conn.getInputStream();
bis = new BufferedInputStream(is);
Bitmap temp = BitmapFactory.decodeStream(bis);

WebViewの画像のダウンロードと表示が上記のコードよりもはるかに高速であることに気付いたので、試してみようと思いました。

String url = "http:\\image.jpg"
int mWidth = getSystemService(Context.WINDOW_SERVICE).getDefaultDisplay().getWidth()
webView.loadData("<html><body> <img src=\"" + url + "\" width=\"" + mWidth + "px\" height=\"auto\"></body></html>", "text/html", null);

これにより画像がはるかに高速になりますが、画像は画面のサイズに合わせて拡大縮小されませんが、大きな画像は常にWebViewの幅を超えており、正しく表示するにはスクロールが必要です。

WebViewで画像を正しく表示するための問題を修正する方法や、最初に画像のダウンロードを高速化する方法を知っている人はいますか?

ダウンロードを高速化したいのですが、画像を正しく拡大縮小できれば、WebViewを使用できてうれしいです。

4

2 に答える 2

5

CSSを使用して画像要素の幅を100%に設定します。高さは、画像のアスペクト/比率に応じて拡大縮小する必要があります。

于 2012-06-08T11:09:48.987 に答える
0

私はまだこれを試していません。しかし、あなたの質問から、webviewを使用して直面する唯一の問題は画面サイズの適合の問題であることがわかります。これを克服するには、初期スケールレベルを1に設定するだけで、画像が画面内に収まるようになります。

これを試して、

     <WebView  
      android:id="@+id/webview"
      android:layout_width="50dip" 
      android:layout_height="50dip"/>

webView.setInitialScale(1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);

注:これがどこまで効果があるかはわかりません。私はまだこれを試していません。しかし、試してみる価値はあります。

于 2012-06-08T11:16:52.093 に答える