Tengo el siguiente código para cargar una imagen en Picasso, usando un elemento de diseño para que el marcador de posición se muestre mientras se descarga la imagen. Sin embargo, lo que quiero es una barra de progreso giratoria animada que se anima alrededor y alrededor mientras se carga la imagen, como veo en la mayoría de las aplicaciones profesionales. Picasso no parece apoyar esto, solo dibujables de imágenes estáticas. ¿Hay alguna forma de que funcione con Picasso o tengo que hacer algo diferente?
Picasso.with(context).load(url)
.placeholder(R.drawable.loading)
.error(R.drawable.image_download_error)
.into(view);
Implementé el diálogo de progreso hasta la descarga de la imagen y es muy simple. Tome su ImageView en un diseño relativo y coloque el cargador de progreso en la misma vista de imagen. Aplique el siguiente código y controle la visibilidad del diálogo de progreso únicamente.
Disfrutar. :)
fuente
final Callback loadedCallback = new Callback() { @Override public void onSuccess() { // your code } @Override public void onError() { // your code } }; imageView.setTag(loadedCallback); Picasso.with(context).load(url).into(imageView, loadedCallback);
Desafortunadamente, Picasso no admite marcadores de posición animados.
Una forma de evitar esto es colocar su ImageView en un FrameLayout con el dibujo animado debajo. De esta forma, cuando Picasso carga la imagen, se carga sobre la parte superior del marcador de posición animado, lo que le da al usuario el efecto deseado.
Alternativamente, puede cargar la imagen en un destino . Luego, la barra de progreso se mostrará de forma predeterminada, y cuando se llame al método onBitmapLoaded, puede ocultarlo y mostrar la imagen. Puedes ver una implementación básica de esto aquí.
fuente
Simplemente agregue el atributo de forma en la respuesta de DBragion como se muestra a continuación y funcionará a la perfección. Codificación feliz.
También puedes usar Glide:
fuente
¡Encontré respuesta a esta pregunta!
Ver: https://github.com/square/picasso/issues/427#issuecomment-266276253
Además de la respuesta de @DBragion, intente a continuación.
¡Ahora podemos arreglar la altura y el ancho!
Creo que hay dos puntos clave.
usar noFade ()
establecer scaleType de image_view en "CENTER_INSIDE"
fuente
Lo hice funcionar de la siguiente manera:
Creó un dibujable (que se encuentra en algún lugar de Internet) y lo puso en el res / dibujable:
En mi artículo para el elemento ProgressBar agregado de GridView:
En Adapter, se agregó el objeto de destino con los siguientes parámetros, donde el póster y la ruleta son referencias a ImageView y ProgressBar:
// Objetivo para mostrar / ocultar ProgressBar en ImageView
Los resultados estarán así en carga - círculo está girando (lo siento por esta captura de pantalla, pero las imágenes están apareciendo demasiado rápido): de ScreenShot
fuente
Para cualquiera que intente utilizar la técnica de DBragion: asegúrese de tener la última versión de Picasso o de lo contrario no funcionará. El mío no funcionó hasta que usé la versión 2.5.2.
fuente
En este enlace , Jake Wharton dijo:
Entonces no puedes
fuente
Solo usa Picasso PlaceHolder
fuente