¿Mostrar una miniatura borrosa antes de descargar toda la imagen (como en Whatsapp)?
Estoy tratando de obtener los mismos chicos agradable efecto de la interfaz de usuario en WhatsApp hizo. Cada vez que recibo alguna imagen, no importa su tamaño, puedo ver la miniatura borrosa en cuestión de 1 segundo, y sobre ella un indicador de que la imagen real se está descargando.
¿Cómo lo hacen? Quiero lograr el mismo efecto cuando los usuarios descargan imágenes de nuestro servidor. No estoy seguro de si están haciendo algún procesamiento de imágenes en el servidor, o hay una función incorporada en Android SDK que puede hacer esto.
- Cómo cambiar el tamaño de la imagen al pulsar
- Cargador universal de imágenes de Android que muestra parcialmente las imágenes
- Google Play Store: necesitas arreglar tu icono de alta resolución. No es una imagen válida
- Imagen en lienzo con eventos táctiles
- Visualización de imágenes y conversión a escala de grises - OpenCV para Android, API de Java
Digamos que un usuario solicita una imagen de 4 MB. Casi instantáneamente hace clic en la descarga, una miniatura borrosa de la imagen aparecerá en la pantalla y descargará el indicador de estado sobre ella. Estoy interesado principalmente en cómo obtener una vista previa de la imagen tan rápidamente, literalmente en cuestión de 1 segundo (se siente como estar al instante).
PD. Efecto similar tiene StackOverflow cuando intenta cargar una imagen. Al arrastrarlo a la ventana emergente de subida, verá su vista previa casi al instante. Supongo que Stackoverflow hace esto mediante el uso de secuencias de comandos del lado del cliente, que no podemos aplicar en la aplicación de Android. Pero este es un buen escaparate de lo que necesito (en caso de que no utilice Whatsapp).
- Repetición de imagen mientras se desplaza en la vista de cuadrícula de Android con Universal Image Loader
- Imagen que se destruye al ser puesto en la carpeta drawables
- ¿Cómo distorsionar una imagen a cualquier cuadrángulo?
- Problema de conversión de URI a Bitmap (2014):
- Una sola intención de permitir que el usuario tome una foto O escoge una imagen de la galería en Android
- Cambiar imagen de contacto mediante programación
- Cómo crear un archivo desde la URL de la imagen sin descargar la imagen
- Disminuye el tamaño de la imagen sin perder su calidad en Android
Básicamente lo que está sucediendo en estas situaciones es que usted necesita para solicitar una imagen en miniatura borrosa del servidor (Normalmente muy pequeño por lo que descarga rápidamente), y luego comenzar la descarga de la imagen completa. Esto es algo que tiene que ser hecho por el servidor.
Actualización: ahora puede utilizar una tecnología como JPEG progresivo para lograr el mismo efecto sin tener su servidor almacenar dos imágenes separadas. Los jpegs progresivos básicamente codifican una imagen de muy baja calidad en los primeros bytes de una imagen y, a medida que la imagen continúa cargando, la calidad mejora. Esto puede no ser el efecto exacto que está buscando, pero debe ser capaz de mostrar una vista previa de baja calidad rápida mientras se carga en la imagen de tamaño completo. Actualmente la única manera de cargar estos en Android es con la biblioteca de Fresco de Facebook .
Tengo otra teoría. Creo que el método utilizado aquí es que antes de publicar el mensaje, que tienen algún algoritmo para generar un ligero fuzzy de baja calidad de imagen (en el remitente) y luego enviar el contenido de esa matriz (unos pocos bytes como un byte [] matriz, tal vez ) A lo largo del mensaje publicado .. ahora una vez que el receptor recibe el mensaje, él puede exhibir inmediatamente esa imagen borrosa y conseguir la imagen completa haciendo una petición completa al servidor. ¿Qué me hace pensar esto es que si van a pedir La miniatura del servidor, ¿por qué no tener una miniatura detallada? Puede ser de pequeño tamaño también .. ¿por qué tienen una miniatura borrosa que es sólo una representación poco superficial de la original y no completa como miniaturas que vemos en la web.
- Android: AbsListView.OnScrollListener SCROLL_STATE_IDLE no se llama después de SCROLL_STATE_TOUCH_SCROLL (versión 2.1)
- ¿Cómo varía el tamaño de la instalación de la aplicación en el teléfono?