6

私の Android アプリケーションは、非常に大きなビットマップを処理します。このため、画像ビューでハードウェア アクセラレーションをオフにしました。ただし、一部のユーザーは、開発者オプションの「強制 GPU アクセラレーション」をオンに設定しています。これにより、「ビットマップが大きすぎてテクスチャにアップロードできません」というエラーが発生します。isHardwareAccelerated() を使用してビューを確認すると、常に false が返されます。

OpenGL エラー「ビットマップが大きすぎてテクスチャにアップロードできません」をキャッチする方法はありますか?

4

2 に答える 2

2

ビットマップはピクセルで構成されており、ビットマップ マトリックス内のピクセル数を数えたり、ビットマップ ピクセル数に制限を設定したりできます。OpenGl では言えませんが、一般的には簡単に処理できます
。bitmap.inSampleSize();メソッドもあります。

割り当てる場合

Bitmap.inSampleSize()= 1;

次に、元のビットマップ ピクセルが読み込まれます。

Bitmap.inSampleSize()= 2;

ピクセルは元のピクセルの半分になります。

Bitmap.inSampleSize() = 4

ピクセルは元のピクセルの 1/4 になります。このようにして、ビットマップのピクセルのサイズを小さくすることができます。私は自分のプログラムでこのことを行いました。

于 2012-08-24T13:54:26.963 に答える
0

私は Android で OpenGL を使用したことがないため、キャッチされない例外やエラーをキャッチするために何か特別なことをしなければならないことを知りません。グローバル例外ハンドラーを登録して、そこで OpenGL エラーをキャッチできるかどうかを確認することができます。

于 2012-08-24T12:40:11.820 に答える