Você realmente não deve usar isso, pois bloqueia o thread da interface do usuário. Esta biblioteca tratará de threading e download para você: github.com/koush/UrlImageViewHelper
koush
16
Não se u executar esse bloco em um segmento separado menos o setImageBitmap
Jonathan
seu trabalho eu exibindo em miniaturas e onclick imageview eu usei dsplaying dailog, mas ele abre depois de 10 segundos
Prasad
4
@koush - Este código seria bom se envolto em um AsyncTask.
Greg Brown
2
Você deve fazer quaisquer operações networl em um segmento separado, Quando bitmap tenha sido carregado, você poderia usar ImageView.post () ou Handler.post ()
Volodymyr Shalashenko
311
A resposta aceita acima é ótima se você estiver carregando a imagem com base em um clique no botão; no entanto, se você estiver fazendo isso em uma nova atividade, ela congelará a interface do usuário por um segundo ou dois. Olhando em volta, descobri que uma simples assíncrona eliminava esse problema.
Para usar uma asynctask para adicionar esta classe ao final de sua atividade:
Eu gosto dessa solução, você deve apenas limpar o código do onPostExecute, pois o corpo está fora.
Sofija
isso é ótimo. @Sofija, o que você quis dizer com limpeza? e se você tiver um número desconhecido de fotos?
5er
@ 5er Eu tinha alguns dos suportes fora do lugar na resposta original. Desde então, limpei-o para que você possa usá-lo como está.
precisa
Para não esquecer que também precisamos adicionar permissão no manifesto: <uses-permission android: name = "android.permission.INTERNET" />
mike20132013
1
Isso é incrível para aprender / invadir (votado), mas para qualquer produção, você deve usar uma biblioteca do Imageloader, existem tantas por aí. Meu favorito é Universal carregador de Imagem, Picasso etc.
AmeyaB
31
tente picasssoagradável e termina em uma declaração
UrlImageViewHelper preencherá um ImageView com uma imagem encontrada em um URL. O UrlImageViewHelper fará o download, salvará e armazenará em cache automaticamente todos os URLs da imagem do BitmapDrawables. Os URLs duplicados não serão carregados na memória duas vezes. A memória de bitmap é gerenciada usando uma tabela de hash de referência fraca; assim que a imagem não for mais usada por você, ela será coletada automaticamente.
1) Usando a biblioteca Glide Essa é a melhor maneira de carregar imagem de URL, porque quando você tenta exibir o mesmo URL na segunda vez, ele será exibido da captura, melhorando o desempenho do aplicativo
Respostas:
fonte
AsyncTask
.A resposta aceita acima é ótima se você estiver carregando a imagem com base em um clique no botão; no entanto, se você estiver fazendo isso em uma nova atividade, ela congelará a interface do usuário por um segundo ou dois. Olhando em volta, descobri que uma simples assíncrona eliminava esse problema.
Para usar uma asynctask para adicionar esta classe ao final de sua atividade:
E chame a partir do seu método onCreate () usando:
Não se esqueça de adicionar abaixo a permissão no seu arquivo de manifesto
Funciona muito bem para mim. :)
fonte
tente
picassso
agradável e termina em uma declaraçãotutorial: https://youtu.be/DxRqxsEPc2s
fonte
Experimente este arquivo adicionar jar picasso lib jar
fonte
em sua atividade, assista ao imageview e defina o recurso imageDownload (url, yourImageview);
fonte
UrlImageViewHelper preencherá um ImageView com uma imagem encontrada em um URL. O UrlImageViewHelper fará o download, salvará e armazenará em cache automaticamente todos os URLs da imagem do BitmapDrawables. Os URLs duplicados não serão carregados na memória duas vezes. A memória de bitmap é gerenciada usando uma tabela de hash de referência fraca; assim que a imagem não for mais usada por você, ela será coletada automaticamente.
UrlImageViewHelper.setUrlDrawable (imageView, "http://example.com/image.png");
https://github.com/koush/UrlImageViewHelper
fonte
Com base nesta resposta, escrevo meu próprio carregador.
Com efeito de carregamento e efeito de aparência:
Adicionar permissão
E execute:
fonte
Aqui está um código de exemplo para exibir a imagem do URL.
fonte
Melhor método que tentei, em vez de usar bibliotecas
fonte
adicionar permissão da Internet no manifesto
do que criar o método como abaixo,
agora adicione isso no seu método onCreate,
isso funciona para mim.
fonte
O código abaixo mostra como definir o ImageView a partir de uma string de URL, usando o RxAndroid. Primeiro, adicione a biblioteca RxAndroid 2.0
agora use setImageFromUrl para definir a imagem.
fonte
Há duas maneiras:
1) Usando a biblioteca Glide Essa é a melhor maneira de carregar imagem de URL, porque quando você tenta exibir o mesmo URL na segunda vez, ele será exibido da captura, melhorando o desempenho do aplicativo
dependência:
implementation 'com.github.bumptech.glide:glide:4.10.0'
2) Usando Stream. Aqui você deseja criar bitmap a partir da imagem da URL
fonte
Aqui está
fonte
ivdpfirst
?Tente o seguinte:
fonte
fonte
Para mim, Fresco é o melhor entre as outras bibliotecas.
Basta configurar o Fresco e simplesmente definir o imageURI da seguinte maneira:
Confira esta resposta explicando alguns dos benefícios do Fresco.
fonte