URI del cargador de imágenes universal de Android de InputStream
Frecuentes
Visto 4,285 equipos
5
quiero preguntar acerca de UIL que la entrada de URI de InputStream. Porque mi fuente de imagen es ZIP y luego debo extraerla para mostrar esa imagen. Debido a que la imagen es demasiado grande, debo usar la biblioteca UIL, alguien sabe cómo insertar UIL desde InputStream.
2 Respuestas
6
Creo que puedes hacerlo de manera similar a cargar imágenes desde DB: ¿Puede el cargador de imágenes universal para Android funcionar con imágenes de sqlite db?
Elijamos nuestro propio esquema para que nuestros URI se vean como "arroyo://...".
Luego implementa ImageDownloader
. Deberíamos capturar los URI con nuestro esquema y devolver el flujo de imágenes.
public class StreamImageDownloader extends BaseImageDownloader {
private static final String SCHEME_STREAM = "stream";
private static final String STREAM_URI_PREFIX = SCHEME_STREAM + "://";
public StreamImageDownloader(Context context) {
super(context);
}
@Override
protected InputStream getStreamFromOtherSource(String imageUri, Object extra) throws IOException {
if (imageUri.startsWith(STREAM_URI_PREFIX)) {
return (InputStream) extra;
} else {
return super.getStreamFromOtherSource(imageUri, extra);
}
}
}
Luego configuramos este `ImageDownloader en configuración:
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
...
.imageDownloader(new StreamImageDownloader(context))
.build();
ImageLoader.getInstance().init(config);
Y luego podemos hacer lo siguiente para mostrar la imagen de DB:
ImageStream is = ...; // You have image stream
// You should generate some unique string ID for this stream
// Streams for the same images should have the same string ID
String imageId = "stream://" + is.hashCode();
DisplayImageOptions options = new DisplayImageOptions.Builder()
...
.extraForDownloader(is)
.build();
imageLoader.displayImage(imageId, imageView, options);
contestado el 23 de mayo de 17 a las 12:05
Hola @NOSTRA, implementando tu respuesta me enfrenté a este problema (stackoverflow.com/questions/39654279/…). ¿Tienes alguna idea sobre esto? - Sudhir
1
Caminos aceptables
String imageUri = "http://someurl.com/image.png"; // from Web
String imageUri = "file:///mnt/sdcard/image.png"; // from SD card
String imageUri = "content://media/external/audio/albumart/13"; // from content provider
String imageUri = "assets://image.png"; // from assets
String imageUri = "drawable://" + R.drawable.image; // from drawables (only images, non-9patch)
Luego muestra la imagen
imageLoader.displayImage(imageUri, imageView);
de la documentación: https://github.com/nostra13/Android-Universal-Image-Loader
Respondido 14 Feb 14, 01:02
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas android universal-image-loader or haz tu propia pregunta.
Pase la ruta absoluta de la imagen para mostrarla. - Sharjeel