ImageView se estrelló la aplicación

Cuando se ha hecho clic en imageView, quiero mostrar la imagen en pantalla completa. Por primera vez funciona, pero después de eso se estrelló. Y el error apuntaba a

startActivity(intent); 

Código

 Intent intent = new Intent(AddExpenses.this,FullScreenImage.class); imageView.buildDrawingCache(); Bitmap image= imageView.getDrawingCache(); Bundle extras = new Bundle(); extras.putParcelable("imagebitmap", image); intent.putExtras(extras); startActivity(intent); image.recycle(); 

FullScreenImage

 public class FullScreenImage extends Activity { @SuppressLint("NewApi") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_full); Bundle extras = getIntent().getExtras(); Bitmap bmp = (Bitmap) extras.getParcelable("imagebitmap"); ImageView imgDisplay; Button btnClose; imgDisplay = (ImageView) findViewById(R.id.imgDisplay); btnClose = (Button) findViewById(R.id.btnClose); btnClose.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { FullScreenImage.this.finish(); } }); imgDisplay.setImageBitmap(bmp ); } } 

Logcat

 E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.IllegalStateException: Can't parcel a recycled bitmap at android.graphics.Bitmap.checkRecycled(Bitmap.java:256) at android.graphics.Bitmap.writeToParcel(Bitmap.java:1366) at android.os.Parcel.writeParcelable(Parcel.java:1254) at android.os.Parcel.writeValue(Parcel.java:1173) 

Uso extras.putParcelable("imagebitmap",image.copy(image.getConfig(), true)); pero recibiendo nuevo error

 java.lang.IllegalStateException: Can't copy a recycled bitmap at android.graphics.Bitmap.checkRecycled(Bitmap.java:256) at android.graphics.Bitmap.copy(Bitmap.java:454) at com.example.tony.monthlyexpenses.AddExpenses$4.onClick(AddExpenses.java:176) 

Creo que el problema es porque la serilización se hace después de que la intención es despedida. Así que en lugar del mapa de bits, acaba de poner una copia del Bitmap de Bitmap en el intento, como esto:

 extras.putParcelable("imagebitmap",image.copy(image.getConfig(), true)); intent.putExtras(extras); 

Compruebe si esto soluciona el problema.

  • BitmapFactory no puede decodificar un mapa de bits de Uri después de las fotos tomadas en Android Nougat
  • Visualización de imagen de mapa de bits en Android (OpenCV)
  • Tratamiento de mapas de bits grandes (mosaico de un pequeño mapa de bits para crear papel tapiz)
  • Imágenes de escala baja en Android: ¿se puede hacer?
  • Obtener información de mapa de bits de mapa de bits almacenado en carpeta dibujable
  • Recortar parte particular de la imagen en android
  • Android - comprimir mapa de bits antes de guardarlo en SDCARD en actividad para obtener resultados
  • Azulejo de un mapa de bits en SurfaceView Canvas
  • Android: Obtención de un mapa de bits desde una conexión de url (graph.facebook.com) que redirige a otra url
  • Android Editar canales de mapa de bits
  • ¿Cómo almacenar en caché android.graphics.path o Bitmap cuando se usan Overlays?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.