#android #kotlin #android-glide
#Android #kotlin #android-скольжение
Вопрос:
У меня есть этот фрагмент кода, это мое первое использование Glide, я до сих пор не понимаю, как это сделать по-другому
try {
Glide.with(this@TestBitmapActivity)
.asBitmap()
.load("https://firebasestorage.googleapis.com/v0/b/mymodeapp-3f9a7.appspot.com/o/heroes/man/bg_hero.png?alt=mediaamp;token=2182a224-bb65-4f06-90d9-8e5c5d9b07d9")
.into(object : CustomTarget<Bitmap>(){
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
bg_imageview_test.setImageBitmap(resource)
Glide.with(this@TestBitmapActivity)
.asBitmap()
.load("https://firebasestorage.googleapis.com/v0/b/mymodeapp-3f9a7.appspot.com/o/heroes/man/hero_man.png?alt=mediaamp;token=6358e564-1fe0-41ff-bc87-0e28d3fe1c1e")
.into(object : CustomTarget<Bitmap>(){
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
val bitmap1:Bitmap = resource
Glide.with(this@TestBitmapActivity)
.asBitmap()
.load("https://firebasestorage.googleapis.com/v0/b/mymodeapp-3f9a7.appspot.com/o/heroes/man/hero_sword.png?alt=mediaamp;token=f3d003f8-b65f-4e69-afe3-ea9653c3a925")
.into(object : CustomTarget<Bitmap>(){
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
val bitmap2:Bitmap = resource
Glide.with(this@TestBitmapActivity)
.asBitmap()
.load("https://firebasestorage.googleapis.com/v0/b/mymodeapp-3f9a7.appspot.com/o/heroes/man/hero_wear.png?alt=mediaamp;token=4f88b869-347e-4bf8-842e-4a728b8d743f")
.into(object : CustomTarget<Bitmap>(){
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
val bitmap3:Bitmap = resource
val bitmapa = overlay(bitmap1,bitmap2,bitmap3)
setAva(bitmapa!!)
}
override fun onLoadCleared(placeholder: Drawable?) {
}
})
}
override fun onLoadCleared(placeholder: Drawable?) {
}
})
}
override fun onLoadCleared(placeholder: Drawable?) {
}
})}
override fun onLoadCleared(placeholder: Drawable?) {
}
})
}
catch (e: Exception) {
Log.d("Test","Erorr?")
}
и вся проблема в том, что эти потоки вложены друг в друга, и было бы лучше, если бы я использовал For, как это сделать в Kotlin?
Комментарии:
1. Зависит ли какая-либо из загрузок от завершения предыдущих загрузок?
2. нет, мне, конечно, нужно следить за порядком загрузок, но в целом это не имеет значения
Ответ №1:
Я предлагаю вам сначала написать код, который загружает одно растровое изображение. Затем вы можете скопировать / вставить точно такой же код, чтобы вместо него загрузить другое растровое изображение. Предполагая, что результат загрузки каждого растрового изображения независим, вам не нужно ничего вкладывать. Кроме того, изменения, которые вы вносите после копирования / вставки первого растрового изображения, должны дать вам представление о том, как превратить это в функцию, которая принимает несколько параметров, чтобы указать, какое растровое изображение загружать.
Комментарии:
1. в этом случае асинхронность теряется, и программа завершает работу
2. @ripusrupus Нам понадобится дополнительная информация, чтобы помочь вам. Вам нужно будет показать самую последнюю версию вашего кода, а также трассировку стека после сбоя. Похоже, важен порядок их загрузки. Или, по крайней мере, вам нужно убедиться, что все изображения загружены, прежде чем выполнять анимацию или что-то еще.