カメラから取得した各フレームをビットマップに変換して、ImageViewに表示していますが、imageViewに回転ビットマップが含まれているため、ビットマップを90度回転右。これを達成するために、私はこの問題を解決するために、いくつかの記事を参照し、そのうちの一つが使用される各ビットマップを再利用することが示唆 iは、ビットマップを90度回転させるために以下のコードを書きましたが、実行時に私はビットマップ回転でエラーが発生する
bitmap size exceeds 32bits
を受け取りますしかし、それは問題を解決しませんでした。 なぜこのエラーが発生しているのか、どのように解決するのか教えてください。
コード:
@Override
protected void onProgressUpdate(Bitmap... values) {
super.onProgressUpdate(values);
Bitmap b = values[0];
Matrix matrix = new Matrix();
matrix.postScale(b.getWidth()-10, b.getHeight()-10);
matrix.postRotate(90);
Bitmap resizedBitmap = Bitmap.createBitmap(b, 0, 0, b.getWidth(), b.getHeight(), matrix, true);
mIVEdges.setImageBitmap(resizedBitmap);
b.recycle();
}
あなたは本当に 'onProgressUpdate(画像を回転させる必要がある)'ない 'doInBackground()'で? - yes - が 'publishProgress()'の場合、頻繁に呼び出しが行われ、多くの新しい 'resizedBitmap'が作成されます。 –