Cómo cargar un ImageView con un archivo png sin usar "setImageBitmap ()"?

Hago un cierto procesamiento (mejora de la calidad y un poco de volver a bitmap.compress() según el tamaño) en un objeto del Bitmap y después lo bitmap.compress() usando la función de bitmap.compress() dando un nombre de archivo "myfile.png".

 newbitmap = processImage(bitmap); FileOutputStream fos = context.openFileOutput("myfile.png", Context.MODE_PRIVATE); newbitmap.compress(CompressFormat.PNG, 100, fos); 

Ahora quiero cargar esta imagen en un ImageView pero no puedo usar setImageBitmap() para hacer eso. ¿Hay alguna alternativa?

La razón por la que no puedo usar setImageBitmap() es que estoy utilizando RemoteViews para un widget, y el uso de método de mapa de bits lleva a errores Error de transacción Binder cuando la imagen es grande.

Intenté fijar el uri de la imagen usando el código abajo pero la imagen no carga en el ImageView :

 RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.widget_layout); File internalFile = context.getFileStreamPath("myfile.png"); Uri internal = Uri.fromFile(internalFile); rv.setImageViewUri(R.id.widgetImageView, internal); updateAppWidget(awID, rv); 

¡Gracias por tu ayuda!

Mientras almacena las imágenes en el almacenamiento interno, debe configurar el modo MODE_WORLD_READABLE lugar de MODE_PRIVATE . Esto se debe a que un widget es manejado por el proceso de la pantalla de inicio y no puede acceder a sus archivos si no establece el modo correcto.

Así que reemplazar esta línea:

 FileOutputStream fos = context.openFileOutput("myfile.png", Context.MODE_PRIVATE); 

con:

 FileOutputStream fos = context.openFileOutput("myfile.png", Context.MODE_WORLD_READABLE); 

También, utilice Uri.parse() y getPath() lugar de fromFile() . fromFile() sólo funciona en Android 2.2 o superior.

 Uri internal = Uri.Parse(internalFile.getPath()); 

¡Espero que esto ayude!

Usando rv.setUri(R.id.widgetImageView, "setImageURI", "file://myfile.png"); En lugar de rv.setImageViewUri(R.id.widgetImageView, internal); Parece cargar la imagen correctamente. Es posible que desee darle una oportunidad.

Si eso no funciona, todavía existe la opción de reducir la escala de la imagen para que pueda utilizar el método setImageBitmap . Ejemplo:

  public static Bitmap scaleDownBitmap(Bitmap photo, int newHeight, Context context) { final float densityMultiplier = context.getResources().getDisplayMetrics().density; int h= (int) (newHeight*densityMultiplier); int w= (int) (h * photo.getWidth()/((double) photo.getHeight())); photo=Bitmap.createScaledBitmap(photo, w, h, true); return photo; } 
  • ¿Por qué setImageResource no muestra nada?
  • Cambiar el color de fondo de edittext
  • Bitmap fuera de error de memoria en android ...
  • Cómo hacer un ImageView con esquinas redondeadas?
  • ¿Cómo puedo cambiar la imagen de un ImageView?
  • Rotar un ImageView como una brújula (con el "polo norte" puesto en otro lugar)
  • Configuración de la gravedad de ImageView en el centro de android mediante programación
  • Desvanecer el borde de la imagen en una vista de imagen
  • Cómo especificar imágenes diferentes cuando mi widget personalizado tiene el foco
  • Diapositiva personalizada para desbloquear
  • ¿Cómo puedo alinear una imagen dentro de un ImageView a la parte inferior del ImageView?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.