¿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.

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).

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.

  • Lista de Android todas las imágenes disponibles
  • El fundido de imagen no mantiene alfa final
  • Mapa de bits en Android: Tamaño de los recursos para mostrar como 50dp
  • Android - cómo evitar la memoria sobre la carga mediante mapas de bits?
  • Cargar muchas imágenes de mapa de bits grandes como miniaturas - Android
  • Cómo cargar la imagen en el servidor en Android?
  • Cómo obtener la imagen de perfil de Facebook en Android
  • Falta o imágenes incorrectas y fondos de forma aleatoria durante todo el ciclo de vida de la aplicación
  • Android: ¿Cómo adjunto una imagen temporal generada a un correo electrónico?
  • Cómo dibujar la imagen en el androide de vista superficial
  • Android: Cómo centrar las imágenes de recorte sin escala
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.