Android从ActivityManager.RunningTaskInfo获取xhdpi图标

Android从ActivityManager.RunningTaskInfo获取xhdpi图标,android,icons,drawable,dpi,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

我正在使用以下代码成功获取最近应用的图标:

//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图标,而不考虑设备的显示密度?感谢您的帮助。

我认为您无法从packageManager.getapplicationappinfo;没有黑客攻击。你可能会破解设备报告的屏幕DPI,或者以某种方式说服PackageManager你有一个xhdpi屏幕大小,你可以指定位图的密度,但我不知道如何将其传递给PackageManager

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

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

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