0

私のアプリではカメラ機能を使用していますが、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());
                        }
                    }
4

0 に答える 0