Quiero añadir algo a lo que la respuesta anterior se aplica a Android 3.0 y superior.
Puede observar que los iconos recuperados de esta manera estándar (es decir, applicationInfo.loadIcon y otros métodos típicos) son más pequeños que los iconos que ve en la aplicación de inicio. Escalar solo hace que los iconos se vuelvan más borrosos. Si quieres iconos grandes, puedes usar el siguiente código (lo tomé del código fuente del iniciador, puedes encontrar here y cambiarlo un poco). Preste atención al método activityManager.getLauncherLargeIconDensity
.
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);
}
Espero que ayude a alguien.
puede dar más detalles, tengo mismo problema –
sin embargo, en la lista lanzador estándar de aplicaciones (no lista de aplicaciones en "Administrar aplicaciones" de pantalla en la configuración) que se ve hermosas grandes iconos (en el pad) a diferencia de los iconos borrosos que se ampliaron de la manera que usted describió. Debe haber alguna otra forma :-( –