Hal pertama yang perlu kita tahu adalah, jika sumber gambar berada diluar asset project android studio, seperti url gambar misalnya, maka kita perlu melakukan sebuar request HTTP.
Pada kesempatan kali ini saya akan sharing bagaimana melakukan load gambar di ImageView menggunakan HttpURLconnection
& Glide
.
1. HttpURLconnection
Cara pertama singkat tapi tidak reusable
val appImgUrlLink = URL("your_img_url")
val avatar: Bitmap = BitmapFactory.decodeStream(appImgUrlLink.openConnection().getInputStream())
Cara kedua adalah kita membuat fungsi yang bisa diakses secara global, sehingga kita bisa panggil di class manapun.
fun getBitmapFromURL(strURL: String?): Bitmap? {
try {
val url = URL(strURL)
val connection = url.openConnection() as HttpURLConnection
connection.setDoInput(true)
connection.connect()
val input = connection.getInputStream()
return BitmapFactory.decodeStream(input)
} catch (e: IOException) {
e.printStackTrace()
return null
}
}
Lalu, saat class yang berbeda perlu memanggil fungsi diatas, maka kita bisa deklarasikan variabel dulu sebagai bitmap, lalu kita inisialisasi di onCreate()
YourClass: AppCompatActivity{
//deklarasi variabel
private lateinit var myImage: Bitmap
override onCreate{
//lalu inisialisasi variabel tersebut
myImage = getBitmapFromURL("your_img_url")
}
}
Atau bisa juga langsung di implementasikan di onCreate()
2.
override onCreate{
//lalu inisialisasi variabel tersebut
val myImage = getBitmapFromURL("your_img_url")
}
2. Glide
Glide adalah manajemen media gambar bersifat terbuka, cucumbarnya adalah cepat & efisien, sebuah kerangka kerja pemuatan gambar untuk Android yang menggabungkan decoding media, cache memori dan disk, serta penggabungan sumber daya ke dalam antarmuka yang sederhana dan mudah digunakan.
val avatar: Bitmap = Glide.with(this@MyFirebaseMessagingService).asBitmap().load("your_img_url").submit().get()
Oke, begitu gaes, selamat mencoba!