0

我在 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”没有任何区别。

还有其他方法可以达到我想要的结果吗?

4

1 回答 1

1

经过一番摆弄,似乎问题在于通过 getResources() 获取位图。无论使用哪种绘图方法,它们都会被过滤掉。

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

于 2018-04-04T08:08:17.477 回答