1

私の質問はこれと似ていますが、新しい質問を投稿するのに十分なほど異なっています。

WebViewリモート サーバーから PNG をダウンロードしてストレージに保存し、マルチタッチ ズームを無料で利用できるように開くイメージ ビューアーを作成しています。これらの画像は通常ドキュメントになるため、ユーザーは非常にズームインできることを望んでいます。これを有効にするのに十分な解像度の画像を送信していますが、WebView最初に画像を画面サイズにスケーリングすることで「助けて」いるようです。これは、画像の解像度が低すぎて適切に拡大できないことを意味します。

私はこれを探し回り、同様の 問題に遭遇した他の人を見つけましたが、私が見つけた唯一の可能な解決策は、画像をタイルに切り取り、ビューにロードする前に HTML を使用して再構築することでした。これはお粗末のように思えます。StackOverflow hivemind に、そのスケーリングをオフにする方法、または必要なものを取得する別の方法があるかどうかを尋ねています。

を初期化するコードWebView:

viewer = (WebView)findViewById(R.id.activity_imageviewer_webview);
viewer.setBackgroundColor(0);
WebSettings settings = viewer.getSettings();
settings.setJavaScriptEnabled(false);
settings.setBuiltInZoomControls(true);
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);

に画像をロードするコードWebView:

viewer.loadUrl(Uri.fromFile(imageFile).toString());
4

2 に答える 2

0

これは、タイリング手法を使用するという難しい方法で解決することになりました。サーバー上で画像を垂直方向のスライスに分割し、それらを送信してクライアント上で HTML を使用して再構成してから、WebView.

実際には、かなりうまく機能しているようです。グラフィックは間違いなく高品質であり、その中のテキストを簡単に読むことができます. 私たちが確認した唯一の問題は、パンとズームのパフォーマンス ヒットがあることです。理由はわかりませんが (まだ)、Nexus S でのみ非常に悪いです。

他の何かが変更されるまで、これがカスタム ビュー コントロールを作成せずに問題を解決する唯一の解決策になると思います。

于 2011-07-21T19:16:06.577 に答える
0

ビューポートのプロパティを変更すると役立つ場合があります。

<meta name="viewport" ...>

HTMLヘッダーのメタタグ

于 2011-04-14T16:26:10.903 に答える