2

我使用以下代码成功获取了最近的应用程序图标:

//app is an ActivityManager.RunningTaskInfo
//image is an ImageView
ApplicationInfo appInfo = packageManager.getApplicationInfo(app.topActivity.getPackageName(), 0);
Drawable d = packageManager.getApplicationIcon(appInfo);
image.setImageDrawable(d);

但是显示的图像只有 48x48 像素。我猜这是因为我的设备是 mdpi,但是它使图标非常模糊。无论设备显示密度如何,有没有办法始终获取 xhdpi 图标?谢谢你的帮助。

4

1 回答 1

0

我认为您无法从 packageManager.getApplicationIcon(appInfo); 中获得任何其他密度图标。没有一些黑客攻击。您要么破解设备报告的屏幕 DPI,要么以某种方式让 PackageManager 相信您拥有 xhdpi 屏幕尺寸(您可以指定位图的密度,但我不知道如何将其传递给 PackageManager)。

但是,可能有一种更简单的方法来获取 xhdpi 图标(以及其他 DP 图标)。如果您可以将应用程序的 apk 下载到您的计算机并解压缩,您应该可以在其中找到可以从中获取图标的 res/drawable* 文件夹。尽管如果您在应用程序运行时以及设备上的任何应用程序都需要 xhdpi 图标,但遗憾的是,这不是您问题的解决方案。如果是后者,还要注意并非每个应用程序都有 xhdpi 资源/图标。

于 2012-11-23T12:05:55.200 回答