Я сейчас не в Android Environment, поэтому приведенный ниже код может не работать.
Пожалуйста, оставьте комментарий, если так.
Вам нужно иметь Context
для работы с активами.
Поэтому вместо инициализации iconList
с объявлением
Я добавлю load()
метод для загрузки списка активов.
Класс значков
Класс значков будет выглядеть ниже, если вы добавите метод load()
.
class Icons {
companion object {
// initialize with empty list
var iconList = listOf<Bitmap>()
fun load(context: Context) {
// This is where we will load assets
}
}
}
метод load ()
Сначала в методе load()
мы получим список имен файлов в assets/list
.
context.getAssets()
вернет AssetManager
object. AssetManager.list(subPath)
вернет все файлы в subPath
. - , используйте
map()
для преобразования списка имен файлов String в список растровых изображений. AssetManager.open(filePath)
, чтобы открыть InputStream
из файла. BitmapFactory.decodeStream(stream)
, чтобы создать Bitmap
из InputStream
С ними, это будет
val am = context.getAssets()
iconList = am.list("images").map {
val inputStream = am.open("images/$it")
return BitmapFactory.decodeStream(inputStream)
}