Получение значков приложений xhdpi из packageManager?
У меня есть активность в моем приложении, где генерируется ListView всех установленных приложений. В дополнение к названию приложения отображается значок приложения. Я создал массив объектов, содержащий всю информацию о приложении, в том числе значок, и получил значок, используя:
drawableAppIcon = mPackageManager.getApplicationIcon(apps.applicationInfo);
кудаapplication
это объект. Проблема в том, что, хотя у меня есть доступ ко всем чертежам, различные приложения, кажется, тянут различные качественные элементы; один значок приложения будет иметь высокое разрешение, а другой - версию с низким разрешением. Я бы подумал, что приведенная выше строка кода учитывает размер экрана и найдет соответствующие значки, но это не так.т. Есть ли альтернатива, которая учитывает размер экрана? Или, еще более предпочтительно, есть ли способ извлечь только значок с самым высоким разрешением, а затем уменьшить его в зависимости от размера экрана, что в принципе гарантирует, что все они выглядят чистыми?
РЕДАКТИРОВАТЬ: ЯМы нашли решение, но оно работает только для Android 4.0+
try {
Context otherAppCtxt = context.createPackageContext(apps.applicationInfo.packageName, Context.CONTEXT_IGNORE_SECURITY);
info.drawableAppIcon = otherAppCtxt.getResources().getDrawableForDensity(apps.applicationInfo.icon, DisplayMetrics.DENSITY_XHIGH);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
Для других' Ссылка, это работает, если у кого-то есть решение для более старой версии Android, которое было бы действительно полезно.