Android AppWidgetProviderInfo图标ID

问题描述

| 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();
    }
}
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...