Bitmap.createScaledBitmap过滤无法按预期工作

时间:2018-03-27 16:47:47

标签: android canvas custom-widgets

我在Android中的自定义小部件画布中使用Bitmap.createScaledBitmap时遇到问题。 小部件应该显示给定资源的缩放的非消除锯齿版本。

小部件类中有以下代码:

protected void onDraw(Canvas canvas) { super.onDraw(canvas); Bitmap bmp = BitmapFactory.decodeResource(this.getResources(), R.drawable.btn); bmp = Bitmap.createScaledBitmap(bmp, bmp.getWidth()*3, bmp.getHeight()*3, false); canvas.drawBitmap(bmp, 0, 0, null); }

createScaledBitmap上的“false”参数应该关闭抗锯齿过滤。结果是缩放的,但是很平滑。将值更改为“true”没有任何区别。

有没有其他方法可以达到我想要的效果?

1 个答案:

答案 0 :(得分:0)

经过多次摆弄后,问题似乎是通过getResources()获取位图。无论使用哪种绘图方法,它们都将被过滤。

我的解决方法是将所有图像放在/ assets文件夹中,并通过getAssets()拉出它们。 (仍不确定这种做法有多糟糕......)