【问题标题】:Android get xhdpi icon from ActivityManager.RunningTaskInfoAndroid 从 ActivityManager.RunningTaskInfo 获取 xhdpi 图标
【发布时间】:2012-09-23 21:34:04
【问题描述】:
我使用此代码成功获取了最近应用的图标:
//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 图标?感谢您的帮助。
【问题讨论】:
标签:
android
icons
drawable
dpi
【解决方案1】:
我认为您无法从 packageManager.getApplicationIcon(appInfo); 中获得任何其他密度图标。没有一些黑客攻击。您要么破解设备报告的屏幕 DPI,要么以某种方式让 PackageManager 相信您拥有 xhdpi 屏幕尺寸(您可以指定位图的密度,但我不知道如何将其传递给 PackageManager)。
但是,可能有一种更简单的方法可以获取 xhdpi 图标(以及其他 DP 图标)。如果您可以将应用程序的 apk 下载到您的计算机并解压缩,您应该可以在其中找到可以从中获取图标的 res/drawable* 文件夹。
尽管如果您在应用程序运行时以及设备上的任何应用程序都需要 xhdpi 图标,但遗憾的是,这不是您问题的解决方案。如果是后者,还要注意并非每个应用都有 xhdpi 资源/图标。