gpt4 book ai didi

android - 从 packageManager 检索 xhdpi 应用程序图标?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:53:58 25 4
gpt4 key购买 nike

我的应用程序中有一个 Activity ,其中生成了所有已安装应用程序的 ListView 。除了应用程序名称外,还会显示应用程序图标。我创建了一个对象数组,其中包含有关应用程序的所有信息,其中包括图标,并使用以下方法检索图标:

drawableAppIcon = mPackageManager.getApplicationIcon(apps.applicationInfo);

在哪里application<PackageInfo>目的。这样做的问题是,虽然我很容易访问所有可绘制对象,但各种应用程序似乎会提取各种质量的可绘制对象;一个应用程序图标将具有极高的分辨率,而另一个将是低分辨率版本。我本以为上面的代码行会考虑屏幕尺寸并找到合适的图标,但事实并非如此。有没有考虑屏幕尺寸的替代方案?或者更理想的是,是否有一种方法可以只提取最高分辨率的图标,然后根据屏幕尺寸将其缩小,这基本上可以保证所有图标看起来都很干净?

编辑:我找到了一个解决方案,但它只适用于 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 的解决方案,这将非常有用。

最佳答案

ApplicationInfo applicationInfo = 
packagemanager.getApplicationInfo(packageName(), PackageManager.GET_META_DATA);
Resources res = packagemanager.getResourcesForApplication(applicationInfo);
Drawable appIcon = res.getDrawableForDensity(applicationInfo.icon,
DisplayMetrics.DENSITY_XXXHIGH,
null);

关于android - 从 packageManager 检索 xhdpi 应用程序图标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18386040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com