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) 

One Solution collect form web for “ImageView se estrelló la aplicación”

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.

  • Asegúrese de que el área del mapa de bits sea transparente al tocar -> de nuevo
  • Android Cómo reciclar el mapa de bits correctamente cuando se utiliza RecyclerView?
  • Mostrar imagen grande de la tarjeta SD en Android
  • Evitar que el bitmap sea un android reciclado
  • ¿Por qué la muestra de documentación se divide por 2 para calcular inSampleSize para la carga de mapa de bits?
  • Guardar bitmap en tarjeta SD sin comprimirla en android
  • Azulejo de un mapa de bits en SurfaceView Canvas
  • Tamaño de pantalla de Android Scaling Canvas
  • Reducir tamaño de mapa de bits a algunos píxeles especificados en Android
  • Borde sobre un mapa de bits con esquinas redondeadas en Android
  • Cuadros de bits en escala de grises en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.