6

这段代码

final ApplicationInfo ai = getPackageManager().getApplicationInfo("com.company.hello", 0);
final Drawable d = getPackageManager().getApplicationIcon(ai);

即使在我的高密度HoneyComb设备上也可以检索 48x48 (mdpi) 可绘制文件。

鉴于我可以通过Bitmap.createScaledBitmap放大可绘制对象,我在问如何提取已经存在的高密度图标。getDrawableForDensity方法不适用于 sdk < 15,但我不乐意为我必须绘制的每个图标调用缩放功能,因为它在包中免费可用。

编辑赏金

暂时忘记了我的设备显示密度问题如下:给定一个我们自己的包,我们肯定知道在相关的 hdpi res 文件夹中有一个 72x72 图标,如何从另一个包中提取这个图标?

此功能在 Honeycomb 环境中不可用。

4

1 回答 1

1

要直接找到具有良好密度的可绘制对象,您只需尝试以下操作:

mContext.getResources().getDrawable(R.drawable.mydrawable);

问题是什么?如果 android 给你一个 48x48 的图标,那就是那个好图标,或者你没有在好 res/drawable- 文件夹中设置图标。

于 2013-01-22T13:59:12.603 回答