使用反别名绘制旋转的位图

时间:2012-01-19 13:15:46

标签: android paint antialiasing

我尝试绘制一个带有反别名的旋转位图,但是它仍然有别名并且它不平滑,有什么帮助吗?

我做了如下:

final Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
p.setAntiAlias(true);
canvas.rotate(-mValues[0]);
canvas.drawBitmap(compass, -compass.getWidth()/2,-compass.getHeight()/2,p);

2 个答案:

答案 0 :(得分:20)

Paint.setAntiAlias()用于文字。

你想要p.setFilterBitmap(true);。

答案 1 :(得分:0)

如果要在没有画布的情况下旋转(使用createBitmap),请将过滤器设置为true

示例:

private static Bitmap rotateBitmap(Bitmap srcImage, float angle) {

    Matrix matrix = new Matrix();
    matrix.postRotate(angle);
    Bitmap rotated = Bitmap.createBitmap(srcImage, 0, 0, srcImage.getWidth(), srcImage.getHeight(), matrix, true/*set true for anti-alias*/);
    srcImage.recycle(); // discard original image

    return rotated;
}