Android AppWidgetProviderInfo id значка - PullRequest
2 голосов
/ 13 апреля 2011

Класс Android AppWidgetProviderInfo содержит целое поле icon.Я хочу получить значок как Drawable.

. Я предполагаю, что идентификатор значка должен быть разрешен для некоторых пакетов Resources.Поставщик виджетов не является частью моего приложения, поэтому мои собственные ресурсы приложения, возвращаемые getResources(), бесполезны.Системные ресурсы также не предоставляются Resources.getSystem().

Как я могу преобразовать этот целочисленный идентификатор в Drawable?

Ответы [ 2 ]

1 голос
/ 12 марта 2016

Как CommonsWare сказал, что вам нужно будет использовать getResourcesForApplication () вот как вы можете его использовать, а также, поскольку в lollipop есть функция 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();
    }
}
1 голос
/ 13 апреля 2011

Используйте PackageManager и getResourcesForApplication().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...