У меня есть 150 изображений во внешнем хранилище устройства Android, которое я должен использовать в качестве анимации для активности со скоростью 30 изображений в секунду.
Я использовал растровое изображение для декодирования файла при заданномпуть, а затем установить его внутри imageView.Я использую обработчик, чтобы сделать это, но анимация довольно медленная.
В приведенном ниже коде animationReadyPath
- это путь к папке, а imageList
- это массив файлов внутри этой папки.Я использовал этот код внутри onWindowFocusChanged()
.
var i = 0
val interval = 1000/30
val handler = Handler()
val runnable = Runnable {
handler.postDelayed(runnable, interval.toLong())
val imgFile = File(animationReadyPath+imageList[i])
val myBitmap = BitmapFactory.decodeFile(imgFile.absolutePath)
iv_animation_ready.setImageBitmap(myBitmap)
if(i<numOfImg){
i++
}
if(i>numOfImg){
iv_animation_ready.setImageBitmap(
BitmapFactory.decodeFile(
animationReadyPath+imageList[149]
)
)
}
}
handler.postAtTime(runnable, System.currentTimeMillis()+interval)
handler.postDelayed(runnable, interval.toLong())
Анимация очень медленная.Как это исправить или предложить другие способы плавной загрузки анимации.
Я не могу включить изображения в свой проект, так как это увеличит размер моего проекта.