问题描述
|
Android的“ 0”类包含一个整数“ 1”字段。我想将图标保留为
Drawable
。
我认为图标ID需要针对某些软件包的ѭ3进行解析。窗口小部件提供程序不是我的应用程序的一部分,因此getResources()
返回的我自己的应用程序资源无用。 resources5ѭ也没有给出系统资源。
如何将这个整数id转换为Drawable?
解决方法
使用
PackageManager
和getResourcesForApplication()
。
,就像CommonsWare所说的那样,您将需要使用getResourcesForApplication()
这是您可以使用它的方法,而且由于棒棒糖有一个loadIcon()函数,使用起来更容易
Drawable icon = null;
if (Build.VERSION.SDK_INT >= 21) {
icon = info.loadIcon(this,density);
} else {
try {
String packageName = info.provider.getPackageName();
Resources resources = context.getPackageManager().getResourcesForApplication(packageName);
icon = resources.getDrawable(info.icon);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}