sola - Android Imageview muestra el mapa de bits anterior después de que la pantalla gira
porque no gira la pantalla de mi celular (1)
Supongo que está configurando la primera imagen de su ImageView en el método onCreate o onStart de su actividad.
Al girar la pantalla, los métodos onCreate y onStart se vuelven a llamar y, por lo tanto, su ImageView vuelve a mostrar la primera imagen.
Para guardar su estado de actividad, eche un vistazo a esto: http://developer.android.com/reference/android/app/Activity.html#SavingPersistentState
Esta podría ser una posible solución:
Bitmap image = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
image = (Bitmap) getLastNonConfigurationInstance();
if(bitmap == null){
image = downloadImage();
}
setImage(bitmap);
}
@Override
public Object onRetainNonConfigurationInstance() {
return bitmap;
}
También puedes leer este método cuando uses fragmentos:
Fragment.setRetainInstance
O el paquete: (onSaveInstanceState (Bundle) también está disponible en tu actividad)
//Save it onSaveInstanceState:
@Override
public void onSaveInstanceState(Bundle toSave) {
super.onSaveInstanceState(toSave);
toSave.putParcelable("bitmap", bitmap);
}
//nd get it back onCreate:
@Override
public void onCreate(Bundle savedState) {
super.onCreate(savedState);
if (savedState != null) bitmap = savedState.getParcelable("bitmap");
}
Se supone que mi aplicación primero muestra una imagen, cuando se presiona un botón, se muestra otra imagen en la vista de la imagen. Sin embargo, cuando se gira la pantalla, imageView muestra la imagen anterior. ¿Cómo debo arreglar esto? (bits es el mapa de bits cargado en imageView en create)
Mi código está abajo:
RGBToBitmap(rgb.getWindow(), bits); //this loads a new image into bits
imageView.setImageBitmap(bits);