有很多 Java 示例代码,但我找不到 Jetpack Compose 的任何结果。
我有一个 ViewModel,它返回一个包名称列表。我想显示应用程序图标。
以前也出现过类似的问题,但无法从答案中找到解决方案。
class MalwareListViewModel : ViewModel() {
private val malwareList = mutableListOf<String>()
fun getMalwareList(): List<String> {
return malwareList
}
}
您可以使用
ApplicationInfo
从应用程序包名称中获取
getApplicationInfo()
对象,然后使用它来加载应用程序图标:
val malwareIcons = mutableListOf<Drawable>()
for (packageName in malwareList) {
var appInfo;
try {
appInfo =
packageManager.getApplicationInfo(packageName, 0);
} catch(NameNotFoundException n) {
Log.e("MalwareViewModel", "Package Name ${packageName} not found.")
continue
}
val appIcon: Drawable = packageManager.getApplicationIcon(appInfo)
malwareIcons.add(appIcon)
}
列表
malwareIcons
然后包含您的malwareList
中包名称的所有图标。