这是我如何获取应用程序的启动器图标(柯尔汀代码,但此问题与Kotlin无关):
val packageManager = packageManager()
val applicationInfo = packageManager.getApplicationInfo(packageName, 0)
val drawable = applicationInfo.loadIcon(packageManager)
我现在的观点是,TaskManager
不推荐使用非分辨率图标,是为了获取该启动程序图标的值或DrawableRes
(例如,标识符等于R.drawable.ic_launcher
)。
我找不到办法。无需显式键入,是否可以动态地实现(或者由于R.java
的生成而不可能?)?
答案 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。