1

Androidタブレットアプリケーションでインターネットから非常に大きな画像を読み込もうとしています。小さいサイズのサンプルをロードする方法は知っていますが、画像の解像度が低下することに気づきました。androidドキュメントは、タイルに画像をロードするのに役立つBitmapRegionDecoderについて教えてくれますが、ドキュメントはあまりないようです。私はこのようなことをしています:-

BitmapRegionDecoder decoder = BitmapRegionDecoder.newInstance(inputstream, false);

さまざまなrectオブジェクトを渡して画像全体を取得するには、以下のコードを必要な回数だけループする必要があることを理解しています。

    region = decoder.decodeRegion(new Rect(0, 0, 50, 50), null);

しかし、これらすべてのビットを1つのイメージビューの正しい位置に配置する方法を理解できません。どんな例でも本当に役に立ちます

4

2 に答える 2

1

あなたがやろうとしていることは、リージョンデコーダーの目的に逆らいたいように聞こえます。断片ではなく、巨大なビットマップ全体をロードして、それらを結合することもできます。結局、どちらの方法でもメモリ不足エラーのリスクがあります。リージョンデコーダーのポイントは、巨大なビットマップからクリップを取得することです。ユースケースの1つは、スワイプジェスチャでパンできるマップビューです。ビットマップの現在表示されているクリップのみを計算し、リージョンデコーダーを使用してロードし、マップビューに表示します。あなたがする必要があるのは、実際にはスケーリングされたバージョンをロードすることです。

于 2012-07-15T18:57:32.787 に答える
0

はい、BitmapRegionDecoderを使用して、タイルに基づいて大きな画像を表示できます

この男はここでTil​​eBitmapDrawableクラスを実装しました。これは、imageviewにフックできます。

https://github.com/diegocarloslima/ByakuGallery

于 2015-04-23T10:49:03.583 に答える