1. ホーム
  2. アンドロイド

解決方法 ビットマップが大きすぎて、テクスチャにアップロードできない例外発生

2022-02-24 13:05:17

簡単に言うと、ハードウェアアクセラレーションを行った場合の画像サイズには限界があるということです。デバイスによって最大値が異なる場合があります。この問題の悲しいところは、プログラムがこの例外をキャッチしていないようで、その結果、プログラムがエラーを報告せず、画像が表示されないことです。このエラーメッセージを見つける唯一の方法は、デバッグログを見ることです。

回避策は、ハードウェアアクセラレーションを無効にすることで、これは単純で残酷なことです。

<application android:hardwareAccelerated="false" ... >

より良い解決策は、google mapのような実装です。画像を異なるブロックに分割し、必要なブロックを毎回読み込むのです。

http://developer.android.com/reference/android/graphics/BitmapRegionDecoder.html

<テーブル
1
public
void
drawBitmap (Bitmap bitmap, Rect src, RectF dst, Paint paint)
2
<テーブル 3 public Bitmap decodeRegion (Rect rect, BitmapFactory.Options options)
<テーブル
3



public

Bitmap decodeRegion (Rect rect, BitmapFactory.Options options)

以上の操作で、多くの画像を読み込むことができ、超大型の画像も表示できるようになります。