我使用以下代码成功获取了应用的最新图标:
//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图标,无论设备显示密度如何?谢谢你的帮助。
答案 0 :(得分:0)
我认为你不能从packageManager.getApplicationIcon(appInfo)获得任何其他密度图标;没有一些黑客攻击。您要么破解设备报告的屏幕DPI,要么以某种方式说服PackageManager您有xhdpi屏幕大小(您可以指定位图的密度,但我不知道如何将其传递给PackageManager)。
然而,可能有一种更简单的方法来获取xhdpi图标(以及其他DP图标)。如果你可以将应用程序的apk发送到你的计算机并解压缩,你应该在里面找到res / drawable *文件夹,你可以从中获取图标。 虽然如果您在应用运行时期间需要xhdpi图标以及设备上的任何应用程序,但遗憾的是这不是您的问题的解决方案。如果是后者,请注意并非每个应用都有xhdpi资源/图标。