Android的AppWidgetProviderInfo
类包含整数icon
字段。我想把这个图标作为Drawable
。
我认为需要针对某个包Resources
解析图标ID。小部件提供程序不属于我的应用程序,因此getResources()
返回的我自己的应用程序资源无效。 Resources.getSystem()
给出的系统资源也不是。
如何将此整数id转换为Drawable?
答案 0 :(得分:1)
使用PackageManager
和getResourcesForApplication()
。
答案 1 :(得分:1)
与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();
}
}