Anda benar-benar tidak boleh menggunakan itu, karena itu memblokir thread UI. Perpustakaan ini akan menangani threading dan pengunduhan untuk Anda: github.com/koush/UrlImageViewHelper
koush
16
Tidak jika Anda menjalankan blok itu pada utas terpisah minus setImageBitmap
Jonathan
itu berfungsi saya menampilkan thumbnail dan onview klik gambar saya menggunakan dsplaying dailog tetapi terbuka setelah 10 detik
Prasad
4
@koush - Kode ini akan baik-baik saja jika dibungkus dengan AsyncTask.
Greg Brown
2
Anda harus membuat operasi networl di utas terpisah, Ketika bitmap telah dimuat, Anda dapat menggunakan ImageView.post () atau Handler.post ()
Volodymyr Shalashenko
311
Jawaban yang diterima di atas sangat bagus jika Anda memuat gambar berdasarkan klik tombol, namun jika Anda melakukannya dalam kegiatan baru itu membekukan UI untuk satu atau dua detik. Melihat sekeliling saya menemukan bahwa asynctask sederhana menghilangkan masalah ini.
Untuk menggunakan asynctask untuk menambahkan kelas ini di akhir aktivitas Anda:
Saya suka solusi ini, Anda hanya perlu membersihkan kode untuk onPostExecute, karena tubuh sudah keluar.
Sofija
ini bagus. @ Sofija apa yang Anda maksud dengan pembersihan? bagaimana jika Anda memiliki jumlah gambar yang tidak diketahui?
5er
@ 5er Saya punya beberapa tanda kurung di tempat pada jawaban aslinya. Sejak itu saya membersihkannya sehingga Anda harus dapat menggunakannya apa adanya.
Kyle Clegg
Tidak lupa bahwa kita juga perlu menambahkan izin dalam manifes: <menggunakan-izin android: name = "android.permission.INTERNET" />
mike20132013
1
Ini luar biasa untuk belajar / meretas (ditingkatkan) tetapi untuk produksi apa pun Anda harus menggunakan perpustakaan Imageloader, ada begitu banyak di luar sana. Yang favorit saya adalah Universal Image loader, Picasso dll.
AmeyaB
31
coba picasssobagus dan selesai dalam satu pernyataan
Picasso, Glide adalah favorit saya juga. Pernyataan Glide sangat mirip dengan Picasso, dengan banyak peningkatan dalam ukuran cache.
anhtuannd
1
Ini harus menjadi jawaban baru, meskipun selalu menyenangkan mengetahui bagaimana melakukannya sendiri. Artikel hebat yang menjelaskan kedua cara: medium.com/@crossphd/…
UrlImageViewHelper akan mengisi ImageView dengan gambar yang ditemukan di URL. UrlImageViewHelper akan secara otomatis mengunduh, menyimpan, dan menyimpan semua url gambar di BitmapDrawables. URL duplikat tidak akan dimuat ke memori dua kali. Memori bitmap dikelola dengan menggunakan tabel hash referensi yang lemah, sehingga segera setelah gambar tidak lagi digunakan oleh Anda, itu akan menjadi sampah yang dikumpulkan secara otomatis.
1) Menggunakan pustaka Glide Ini adalah cara terbaik untuk memuat gambar dari url karena ketika Anda mencoba untuk menampilkan url yang sama di kedua kalinya akan menampilkan dari tangkapan sehingga meningkatkan kinerja aplikasi
Jawaban:
sumber
AsyncTask
.Jawaban yang diterima di atas sangat bagus jika Anda memuat gambar berdasarkan klik tombol, namun jika Anda melakukannya dalam kegiatan baru itu membekukan UI untuk satu atau dua detik. Melihat sekeliling saya menemukan bahwa asynctask sederhana menghilangkan masalah ini.
Untuk menggunakan asynctask untuk menambahkan kelas ini di akhir aktivitas Anda:
Dan panggil dari metode onCreate () Anda menggunakan:
Jangan lupa untuk menambahkan izin di bawah ini dalam file manifes Anda
Bekerja bagus untukku. :)
sumber
coba
picassso
bagus dan selesai dalam satu pernyataantutorial: https://youtu.be/DxRqxsEPc2s
sumber
Coba ini tambahkan file jar picasso lib
sumber
dalam aktivitas Anda ambil imageview & atur resourceDownload (url, yourImageview);
sumber
UrlImageViewHelper akan mengisi ImageView dengan gambar yang ditemukan di URL. UrlImageViewHelper akan secara otomatis mengunduh, menyimpan, dan menyimpan semua url gambar di BitmapDrawables. URL duplikat tidak akan dimuat ke memori dua kali. Memori bitmap dikelola dengan menggunakan tabel hash referensi yang lemah, sehingga segera setelah gambar tidak lagi digunakan oleh Anda, itu akan menjadi sampah yang dikumpulkan secara otomatis.
UrlImageViewHelper.setUrlDrawable (imageView, "http://example.com/image.png");
https://github.com/koush/UrlImageViewHelper
sumber
Berdasarkan jawaban ini saya menulis loader saya sendiri.
Dengan efek Memuat dan efek Muncul:
Tambahkan izin
Dan jalankan:
sumber
Berikut ini contoh kode untuk menampilkan Gambar dari URL.
sumber
Metode Terbaik Saya sudah mencoba daripada menggunakan perpustakaan apa pun
sumber
tambahkan izin Internet dalam manifes
daripada membuat metode seperti di bawah ini,
sekarang tambahkan ini dalam metode onCreate Anda,
ini bekerja untuk saya.
sumber
Kode di bawah ini menunjukkan kepada Anda cara mengatur ImageView dari string url, menggunakan RxAndroid. Pertama, tambahkan RxAndroid library 2.0
sekarang gunakan setImageFromUrl untuk mengatur gambar.
sumber
Ada dua cara:
1) Menggunakan pustaka Glide Ini adalah cara terbaik untuk memuat gambar dari url karena ketika Anda mencoba untuk menampilkan url yang sama di kedua kalinya akan menampilkan dari tangkapan sehingga meningkatkan kinerja aplikasi
ketergantungan:
implementation 'com.github.bumptech.glide:glide:4.10.0'
2) Menggunakan Stream. Di sini Anda ingin membuat bitmap dari gambar url
sumber
Ini dia
sumber
ivdpfirst
?Coba ini:
sumber
sumber
Bagi saya, Fresco adalah yang terbaik di antara perpustakaan lainnya.
Cukup setup Fresco dan kemudian atur imageURI seperti ini:
Lihatlah jawaban ini yang menjelaskan beberapa manfaat Fresco.
sumber