我在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”没有任何区别。
有没有其他方法可以达到我想要的效果?
答案 0 :(得分:0)
经过多次摆弄后,问题似乎是通过getResources()获取位图。无论使用哪种绘图方法,它们都将被过滤。
我的解决方法是将所有图像放在/ assets文件夹中,并通过getAssets()拉出它们。 (仍不确定这种做法有多糟糕......)