Android从ActivityManager.RunningTaskInfo获取xhdpi图标

时间:2012-09-23 21:34:05

标签: android icons drawable dpi

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

//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);

然而,显示的图像仅为48x48px。我猜这是因为我的设备是mdpi,但它使图标非常模糊。有没有办法随时获取xhdpi图标,无论设备显示密度如何?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

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

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