我想补充的东西以前的答案是什么适用于Android 3.0的大。
您可以注意到以这种标准方式(我的意思是applicationInfo.loadIcon和其他典型方法)检索到的图标小于您在启动器应用程序中看到的图标。放大只是使图标模糊。如果你想要大图标,你可以使用下一个代码(我从启动程序的源代码中找到它,你可以找到here并改变了一下)。请注意0方法。
public Drawable getFullResDefaultActivityIcon() {
return getFullResIcon(Resources.getSystem(), android.R.mipmap.sym_def_app_icon);
}
public Drawable getFullResIcon(Resources resources, int iconId) {
Drawable d;
try {
ActivityManager activityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
int iconDpi = activityManager.getLauncherLargeIconDensity();
d = resources.getDrawableForDensity(iconId, iconDpi);
} catch (Resources.NotFoundException e) {
d = null;
}
return (d != null) ? d : getFullResDefaultActivityIcon();
}
public Drawable getFullResIcon(String packageName, int iconId) {
Resources resources;
try {
resources = mContext.getPackageManager().getResourcesForApplication(packageName);
} catch (PackageManager.NameNotFoundException e) {
resources = null;
}
if (resources != null) {
if (iconId != 0) {
return getFullResIcon(resources, iconId);
}
}
return getFullResDefaultActivityIcon();
}
public Drawable getFullResIcon(ResolveInfo info) {
return getFullResIcon(info.activityInfo);
}
public Drawable getFullResIcon(ActivityInfo info) {
Resources resources;
try {
resources = mContext.getPackageManager().getResourcesForApplication(info.applicationInfo);
} catch (PackageManager.NameNotFoundException e) {
resources = null;
}
if (resources != null) {
int iconId = info.getIconResource();
if (iconId != 0) {
return getFullResIcon(resources, iconId);
}
}
return getFullResDefaultActivityIcon();
}
private Drawable getAppIcon(ResolveInfo info) {
return getFullResIcon(info.activityInfo);
}
希望它可以帮助别人。
你能否详细说明,我有同样的问题 – 2011-06-07 06:09:54
然而,在应用程序的标准发射器列表(没有应用程序列表中的“管理应用程序”中设置显示),你看到漂亮的大图标(不同于模糊的图标,按照您所描述的方式放大。必须有其他方式:-( – 2013-04-29 11:27:22