Cómo almacenar objeto de mapa de bits en sharedferencias en android

Quiero almacenar el objeto de mapa de bits en las preferencias compartidas y en el método de reanudar acaba de recuperar ese objeto y establecerlo en el fondo.Por favor, díganme cómo almacenar y recuperar el formulario de preferencias compartidas.El problema es que en las preferencias compartidas podemos poner los valores como String, int, bolean, etc largo, pero no el objeto bitmao.Por favor, ayúdame a solucionar este problema.Below es mi código:

@Override protected void onResume() { super.onResume(); rl_changeBackground.setBackgroundDrawable(new BitmapDrawable(getResources(),HomeSafeStaticVariables.bitmap)); } } 

Puede agregar sólo Boolean, Float, Int, Long, String valores en SharedPreference. Pero una cosa que puedes hacer es convertir Bitmap a Base64 String. Y después de recuperarlo de SharedPrefrence, lo convierten en Bitmap.

Utilice el siguiente método para convertir el mapa de bits en matriz de bytes:

 ByteArrayOutputStream baos = new ByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG, 100, baos); //bm is the bitmap object byte[] b = baos.toByteArray(); 

Codificar base64 de matriz de bytes utilizar el siguiente método

 String encoded = Base64.encodeToString(b, Base64.DEFAULT); 

Y guárdelo en SharedPrefrence.

Ahora suponiendo que sus datos de imagen están en una cadena llamada codificada, lo siguiente debería darle BitMap de la cadena Base64:

 byte[] imageAsBytes = Base64.decode(encoded.getBytes()); ImageView image = (ImageView)this.findViewById(R.id.ImageView); image.setImageBitmap(BitmapFactory.decodeByteArray(imageAsBytes, 0, imageAsBytes.length)); 

Esto puede ayudarle. ¡Intenta y por favor déjame saber!

Puede almacenar Bitmap como cadena base64 en SharedPreferences Pero no es una buena práctica almacenar imágenes de mapa de bits en SharedPreferences . Debe almacenar la imagen en la tarjeta SD y guardar la ruta en SharedPreferences .

Compruebe esta pregunta

Si realmente desea almacenar su imagen en SharedPreferences debe echar un vistazo a esta solución (o similar que ya existe aquí):

Cómo almacenar y recuperar el mapa de bits en sharedPreferences en Android?

  • El mapa de bits de la vista no se muestra en Android
  • Android: El código QR generado que usa Zxing tiene márgenes (no es apropiado para el área)
  • Mapa de bits de mosaico de Android
  • Cómo convertir Bitmap a Base64 String
  • Medidas de altura de StaticLayout fuera
  • ¿Es posible mover un fondo de azulejos? (Scroll infinito con TileMode.REPEAT)
  • Imagen de Android seleccionada de la galería La orientación siempre es 0: Exif TAG
  • ¿Cómo hacer un downsample de imágenes correctamente?
  • Carga Android de mapas de bits grandes
  • Convertir mapa de bits en byteArray android
  • ¿Cómo puedo imprimir una imagen en una impresora Bluetooth en Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.