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

  • Android: mostrar imágenes en la vista Web
  • ¿Puede WebView de Android redimensionar automáticamente imágenes enormes?
  • Problema de memoria mientras maneja y procesa múltiples mapas de bits grandes
  • Procesamiento de imágenes en android con escala de estiramiento y efecto Twist
  • Sube la imagen de android a java servlet y guárdala
  • Tamaño incorrecto de Drawable.getIntrinsicWidth ()
  • Android webview pinch zoom Problema
  • android: Cargando imagen en una clase
  • Android: mapa de bits baja escala de baja calidad
  • Android: girar un ImageView con el dedo mueve otras vistas alrededor
  • Cómo reducir un tamaño de archivo de imagen antes de subir a un servidor
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.