Изображение камеры вызывает OutOfMemory в сборке Android

В моем приложении я использую функцию камеры, но когда я нажал на фотографию, используя 5-мегапиксельную камеру устройства, а затем использовал ее в своей сборке, то при создании возникла ошибка OutOfMemoryError, как я могу это предотвратить. Когда нажата кнопка "Рис" и нажата кнопка "ОК", я использую приведенный ниже код, чтобы добавить его в свое приложение.

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());
                        }
                    }

0 ответов

Другие вопросы по тегам