какой метод подходит для переопределения растрового изображения?

1

друзья

У меня есть страница, на которой я показываю изображение из галереи, тогда у меня есть кнопка следующей страницы, чтобы перейти к следующему действию на этой кнопке. Я использую clearBitmap(); для использования свободной памяти.

частное растровое изображение растрового изображения;

oncreate()
{

 _image = (ImageView)findViewById(R.id.MyImage);

_path = getRealPathFromURI(_data.getData());


            BitmapFactory.Options options = new BitmapFactory.Options();


            options.inSampleSize = 2;

            bitmap = BitmapFactory.decodeFile( _path, options );

_image.setImageBitmap(bitmap);


next.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View view) {

            Intent myIntent = new Intent(UploadImageOnly.this, ImageGallery.class);

                        startActivity(myIntent);

clearBitmap();




}

что дает мне ошибку LogCat

08-13 12:07:07.649: ERROR/AndroidRuntime(753): Uncaught handler: thread main exiting due to uncaught exception
08-13 12:07:07.869: ERROR/AndroidRuntime(753): java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@43c13dd0
08-13 12:07:07.869: ERROR/AndroidRuntime(753):     at android.graphics.Canvas.throwIfRecycled(Canvas.java:955)
08-13 12:07:07.869: ERROR/AndroidRuntime(753):     at android.graphics.Canvas.drawBitmap(Canvas.java:1044)
08-13 12:07:07.869: ERROR/AndroidRuntime(753):     at android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:323)
08-13 12:07:07.869: ERROR/AndroidRuntime(753):     at android.widget.ImageView.onDraw(ImageView.java:845)
08-13 12:07:07.869: ERROR/AndroidRuntime(753):     at android.view.View.draw(View.java:6535)

код

public void clearBitmap() {

        try{
            if(bitmap!=null && !bitmap.isRecycled()){
                    bitmap.recycle();
                    bitmap = null;
            }
            }catch(Throwable e){
                    System.out.println(e.getMessage());
                    e.printStackTrace();
            }

          System.gc();

         }
Теги:
image-processing

1 ответ

0
Лучший ответ

Просто позвольте сборщику мусора справиться с этим. Вам не нужно использовать Bitmap#recycle() в вашем случае или в любом нормальном случае.

  • 0
    хорошо, если я не открываю снова и снова разные изображения из галереи ... я получаю сбой из-за исключения памяти. поэтому освобождение памяти необходимо в этом случае.
  • 0
    Затем вы сохраняете ссылки на свои растровые изображения, и они не восстанавливаются.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню