0
我有,我用它來拍照的相機,我的問題是關於onPictureTaken功能:位圖內存上合影留念
public Camera.PictureCallback jpeghandler = new Camera.PictureCallback() {
public void onPictureTaken(byte[] data, Camera camera) {
Options options = new BitmapFactory.Options();
options.inScaled = false;
options.inDither = false;
options.inSampleSize = 2;
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
photo = BitmapFactory.decodeByteArray(data, 0, data.length, options);
Matrix matrix = new Matrix();
matrix.postRotate(90);
Bitmap rotate_bitmap = Bitmap.createBitmap(photo , 0, 0, photo.getWidth(), photo.getHeight(), matrix, true);
photo.recycle();
photo = Bitmap.createBitmap(rotate_bitmap, 0, rotate_bitmap.getHeight()/2 - rotate_bitmap.getWidth()/2, rotate_bitmap.getWidth(), rotate_bitmap.getWidth());
Intent resultIntent = new Intent();
String image_url = MediaStore.Images.Media.insertImage(getContentResolver(), photo, "photo" , null);
resultIntent.putExtra("Photo_Taken", image_url);
setResult(Activity.RESULT_OK, resultIntent);
photo.recycle();
rotate_bitmap.recycle();
finish();
}
};
我打開這一個,然後我採取了另一項活動圖片,關閉此圖片並將圖片的位置傳回第一個活動。問題是,當我重新打開此活動拍攝另一張照片也給了我一個內存不足的錯誤在這條線:
Bitmap rotate_bitmap = Bitmap.createBitmap(photo , 0, 0, photo.getWidth(), photo.getHeight(), matrix, true);
什麼是錯的,什麼是怎麼回事?因爲照片大小始終低於25Mb,然後在第二張照片中顯示:13128976-字節分配內存不足。
謝謝!