Eu tenho o seguinte código para carregar uma imagem no Picasso, usando um drawable para o espaço reservado para exibir enquanto a imagem está baixando. O que eu quero, no entanto, é um botão giratório animado no estilo da barra de progresso giratório que se anima enquanto a imagem está carregando, como vejo na maioria dos aplicativos profissionais. Picasso não parece suportar isso, apenas drawables de imagens estáticas. Existe uma maneira de fazer funcionar com o Picasso ou eu tenho que fazer algo diferente?
Picasso.with(context).load(url)
.placeholder(R.drawable.loading)
.error(R.drawable.image_download_error)
.into(view);
Implementei o diálogo de progresso até o download da imagem e é muito simples. Pegue seu ImageView em layout relativo e coloque o carregador de progresso na mesma visualização de imagem. Aplique o código abaixo e controle apenas a visibilidade da caixa de diálogo de progresso.
Aproveitar. :)
fonte
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);
O Picasso não oferece suporte a marcadores de posição animados, infelizmente.
Uma maneira de contornar isso é colocar seu ImageView em um FrameLayout com o drawable animado embaixo. Dessa forma, quando o Picasso carregar a imagem, ela será carregada sobre o espaço reservado animado, dando ao usuário o efeito pretendido.
Como alternativa, você pode carregar a imagem em um destino . Então você teria a barra de progresso sendo exibida por padrão e, quando o método onBitmapLoaded fosse chamado, você poderia ocultá-lo e exibir a imagem. Você pode ver uma implementação básica disso aqui
fonte
Apenas adicione o atributo de forma na resposta do DBragion como mostrado abaixo e funcionará perfeitamente. Boa codificação.
Você também pode usar o Glide:
fonte
Eu encontrei a resposta para esta pergunta!
Veja: https://github.com/square/picasso/issues/427#issuecomment-266276253
Além da resposta de @DBragion, tente abaixo.
Agora podemos corrigir a altura e a largura!
Acho que existem dois pontos principais.
use noFade ()
definir scaleType de image_view para "CENTER_INSIDE"
fonte
Eu fiz isso funcionando da seguinte maneira:
Criei um drawable (encontrado em algum lugar na Internet) e coloque-o no res / drawable:
No meu item para o GridView adicionei o elemento ProgressBar:
No adaptador adicionado Objeto de destino com os seguintes parâmetros, onde poster e spinner são referências a ImageView e ProgressBar:
// Alvo para mostrar / ocultar ProgressBar em ImageView
Os resultados serão assim no carregamento - o círculo está girando (desculpe por esta captura de tela, mas as imagens estão aparecendo muito rápido): ScreenShot
fonte
Para quem está tentando usar a técnica do DBragion: Certifique-se de ter a versão mais recente do Picasso ou ele não girará. O meu não funcionou até que usei a versão 2.5.2.
fonte
Neste link , Jake Wharton disse:
Então você não pode
fonte
Basta usar Picasso PlaceHolder
fonte