1

ズーム機能とスクロール機能を備えた画像を表示できる必要があります。これはImageViewでは少し面倒に思えるので、ローカル画像を読み込んで表示するWebViewで実行しています。これは私の現在のコードです:

    WebView image = (WebView)findViewById(R.id.image);
    image.getSettings().setBuiltInZoomControls(true);
    image.getSettings().setLoadWithOverviewMode(true);
    image.getSettings().setUseWideViewPort(true);
    image.setInitialScale(40);
    image.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT));
    image.loadUrl("file:///android_asset/image.png");

これにより画像が読み込まれますが、画像のみを表示することはできません。setUseWideViewPort(true)を使用すると、幅を拡大縮小できるため、その下には常に適切な量の空白があります。

ロードされた画像のみをスクロールできるようにするための提案はありますか?ありがとう。setDefaultZoomも試しましたが、十分に機能しません。

4

1 に答える 1

1

setInitialScaleメソッド内で静的なパーセンテージ40を使用することは適切だと思いますが、画面の密度やサイズは考慮されていません。現在、40は、実際のサイズの40%にスケーリングされていることを意味します。

PCのWebブラウザでのみ画像を開く場合、これは基本的に同じように応答し、左上隅に配置することを考えてみてください。はい、WebViewでスケーリングできますが、この場合、すべてのプラットフォームで機能させるには、画面解像度から関連する境界矩形(Androidの場合は上下)を差し引いたものに基づいてスケーリング係数を計算する必要があります。画像の実際の幅と高さに。

ImageViewに戻ることをお勧めします!

于 2012-06-13T19:56:38.787 に答える