Reputation: 81
How can download image from retrofit response Kotlin
i got response from like this
"image_thumb": "http%3A%2F%2Fdemo.co%2Fflightrecord%2Fimages%2Fpassport%2Fthumb%2Fpassport-307199094910Koala.jpg"
how can save image in device directory using FileOutputStream
Upvotes: 0
Views: 776
Reputation: 54
Your solution
if (response.body()?.data != null) {
val result = URLDecoder.decode(response.body()?.data?.get(0)?.dof!!, StandardCharsets.UTF_8.name())
val image1 = URLDecoder.decode(response.body()?.data?.get(0)?.image_thumb!!, StandardCharsets.UTF_8.name())
var imagePath: String
Glide.with(this)
.asBitmap()
.load(image1)
.into(object : CustomTarget<Bitmap>(){
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
val fos: FileOutputStream? =
activity?.openFileOutput( response.body()?.data?.get(0)?.userid!!, AppCompatActivity.MODE_PRIVATE)
resource.compress(Bitmap.CompressFormat.JPEG, 50, fos)
fos?.close()
imagePath = activity?.applicationContext?.getFileStreamPath(response.body()?.data?.get(0)?.userid!!)?.absolutePath?.toUri()
.toString()
handler.passportInsert(
PassportModelClass(
response.body()?.data?.get(0)?.userid!!,
response.body()?.data?.get(0)?.fistname!!,
response.body()?.data?.get(0)?.surname!!,
response.body()?.data?.get(0)?.nationality!!,
result,
response.body()?.data?.get(0)?.gender!!,
imagePath,
response.body()?.data?.get(0)?.age!!.toInt()
)
)
binding.progress.isVisible = false
Toast.makeText(context, "restore successfully", Toast.LENGTH_SHORT).show()
}
override fun onLoadCleared(placeholder: Drawable?) {
}
})
}
Upvotes: 1