如何从资源中获取高密度位图

时间:2014-05-23 12:21:12

标签: android bitmap bitmapfactory

根据Google's iconography,我添加了多个密度的应用程序图标(ic_launcher)。它工作正常。但是,我如何以编程方式获取代码中的图标?

Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher);

通常我会使用此代码,但我总是会解码64x64维度的图像,而我的原始图标都没有。如何强制BitmapFactory解码为例如XXXHPDI?

enter image description here

2 个答案:

答案 0 :(得分:1)

从api级别15开始,您可以使用以下方法here

getResources().getDrawableForDensity(id, density);

答案 1 :(得分:1)

试试这个,

BitmapFactory.Options options = new BitmapFactory.Options();// whichever you want to load
options.inDensity = DisplayMetrics.DENSITY_MEDIUM;
options.inTargetDensity = getResources().getDisplayMetrics().densityDpi;
options.inScaled = true;