私のアプリではカメラ機能を使用していますが、5 MPデバイスのカメラを使用して写真をクリックし、ビルドで使用してからビルドすると、OutOfMemoryErrorが発生します。これを防ぐにはどうすればよいですか。picがクリックされ、okボタンが押されたら、以下のコードを使用してアプリに取り込みます。
case TAKE_P:
if (resultCode == Activity.RESULT_OK)
{
Uri selectedImage = imageUri;
getContentResolver().notifyChange(selectedImage, null);
// ImageView imageView = (ImageView)
// findViewById(R.id.ImageView);
ContentResolver cr = getContentResolver();
Bitmap bitmap;
try {
yourselectedimage = android.provider.MediaStore.Images.Media
.getBitmap(cr, selectedImage);
Bitmap newBitmap = Bitmap.createScaledBitmap(
yourselectedimage, width1, height1, true);
drawabledata = new BitmapDrawable(newBitmap);
ll.setVisibility(View.GONE);
//gallery.setImageResource(R.drawable.imagegallery);
galleryisclicked = true;
if (mCanvasView != null)
clearcanvas();
fillmenu();
// imageView.setImageBitmap(bitmap);
// Toast.makeText(this, selectedImage.toString(),
// Toast.LENGTH_LONG).show();
}
catch (OutOfMemoryError e) {
Log.i("#############", "###############");
Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
System.gc();
System.gc();
};
}, 1000);
Toast.makeText(this, "Out of Memory", Toast.LENGTH_SHORT)
.show();
}catch (Exception e) {
Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
System.gc();
System.gc();
};
}, 1000);
Toast.makeText(this, "Reload again", Toast.LENGTH_SHORT)
.show();
Log.e("Camera", e.toString());
}
}