获取启动器的图标资源标识符

时间:2018-09-19 08:11:13

标签: android android-resources android-package-managers

这是我如何获取应用程序的启动器图标(柯尔汀代码,但此问题与Kotlin无关):

val packageManager = packageManager()
val applicationInfo = packageManager.getApplicationInfo(packageName, 0)
val drawable = applicationInfo.loadIcon(packageManager)

我现在的观点是,TaskManager不推荐使用非分辨率图标,是为了获取该启动程序图标的值或DrawableRes(例如,标识符等于R.drawable.ic_launcher )。

我找不到办法。无需显式键入,是否可以动态地实现(或者由于R.java的生成而不可能?)?

1 个答案:

答案 0 :(得分:1)

如果要检索图标的相应资源ID,并且知道包装名称和商品名称,则可以这样做:

int resourceId = this.getResources().getIdentifier("nameOfResource", "drawable", this.getPackageName());

”是运行代码的活动。
nameOfResource ”是图标本身的名称(不带文件扩展名)
drawable ”是 res < / strong>图标所在的子文件夹。

您可以找到功能文档here

或者,您可以收到一个应用程序的资源ID:

final PackageManager packageManager = getPackageManager();
final ApplicationInfo applicationInfo=packageManager.getApplicationInfo(packageName,PackageManager.GET_META_DATA);
final int appIconResId=applicationInfo.icon;

这与您的方法类似。 您可以搜索应用程序的所有资源,并可以作为返回信息的成员访问图标ID。