A simple image loading utility for loading images from URLs in Android applications without using any third party libraries like coil/glide
.
To load an image from a URL, use the loadImageFromUrl function:
ImageLoader2.loadImageFromUrl(
url = "https://example.com/image.jpg",
onSuccess = { bitmap ->
// Handle successful image loading
},
onError = { error ->
// Handle error in image loading
},
onLoading = {
// Handle image loading in progress
}
)
<uses-permission android:name="android.permission.INTERNET"/>
@Composable
fun ImageComponent(modifier: Modifier = Modifier, url: String) {
var isLoading by remember {
mutableStateOf(true)
}
val context = LocalContext.current
var bitmap by remember {
mutableStateOf<Bitmap?>(null)
}
if (bitmap == null && isLoading) {
ImageLoader2.loadImageFromUrl(
url,
onSuccess = {
bitmap = it
isLoading = false
},
onError = {error ->
isLoading = false
Toast.makeText(context, error, Toast.LENGTH_SHORT).show()
},
onLoading = {
Log.d("Main","Loading")
}
)
}
Box(
Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
if (isLoading) {
CircularProgressIndicator()
} else {
bitmap?.let { loadedBitmap ->
Image(
bitmap = loadedBitmap.asImageBitmap(),
contentDescription = null,
modifier= Modifier.fillMaxSize(),
contentScale = ContentScale.Fit
)
}
}
}
}