使用BitmapFactory.Options();

时间:2013-10-18 15:55:05

标签: android

我已经采用并修改了一些用于获得高质量抗锯齿小版本(500x500)位图图像的代码。显然使用Matrix比使用createScaledBitmap()产生更高的质量。结果并不是很令人印象深刻..我怀疑也许我犯了一个错误,特别是我不确定选项是否实际上被使用了。所以我将inSampleSize = 1;更改为inSampleSize = 50;,希望看到质量大幅下降,但没有变化。所以现在我怀疑选项被忽略了。这段代码可以获救吗?

我希望也许会找到某个版本的createBitmap,它使用bitmapoptions参数,但却找不到。

BitmapFactory.Options options = new BitmapFactory.Options();

options.inPreferQualityOverSpeed = true;
options.inJustDecodeBounds = false;
options.inDither = false;
options.inSampleSize = 1;
options.inScaled = false;
options.inPreferredConfig = Bitmap.Config.ARGB_8888;

Bitmap bmpSource = BitmapFactory.decodeResource(getResources(), R.drawable.bigicon);

Matrix matrix = new Matrix();
matrix.postScale(.1f,.1f);
Bitmap scaledBitmap = Bitmap.createBitmap(bmpSource, 0, 0, bmpSource.getWidth(), bmpSource.getHeight(), matrix, true);

2 个答案:

答案 0 :(得分:4)

实际上你应该把它作为参数提供。变化

Bitmap bmpSource = BitmapFactory.decodeResource(getResources(), R.drawable.bigicon);

Bitmap bmpSource = BitmapFactory.decodeResource(getResources(), R.drawable.bigicon, options);

here文档

答案 1 :(得分:0)