【问题标题】:Android: drawRect without antialiasingAndroid:没有抗锯齿的drawRect
【发布时间】:2013-09-16 14:54:58
【问题描述】:

我在位图上画了一个矩形,它的边框被抗锯齿或有一些效果,如您所见: 原图:

如何关闭该效果以获得如下实线:

我使用这个代码:

Bitmap mBuffer = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
gfx = new Canvas(mBuffer);

Paint paintNorm = new Paint();
paintNorm.setAntiAlias(false);
paintNorm.setStrokeWidth(1);
paintNorm.setStyle(Paint.Style.STROKE);
paintNorm.clearShadowLayer();
paintNorm.setDither(false);
paintNorm.setFilterBitmap(false);

paintNorm.setColor(0xFFA8A8A8);
gfx.drawRect(2,3,50,50, paintNorm);

【问题讨论】:

    标签: android border drawrect antialiasing


    【解决方案1】:

    我的印象是您的位图在没有抗锯齿的情况下正确绘制,但模糊效果可能来自显示位图时的放大。您的屏幕截图是 245 像素宽,但您的代码似乎表明矩形应该是大约 50 像素左右。

    【讨论】:

    • 这些图片被放大,让你看到我在说什么。这种模糊效果不是通过缩放!当我画一条简单的线时,效果是一样的。
    • 对不起,我猜错了。也许问题出在单位上。如果将 StrokeWidth 设置为 0 会发生什么?
    • 我已经试过了。不幸的是同样的。首先我想画一个简单的填充矩形,它有相同的边框。当我画一些文字时,我很惊讶,效果是一样的。如果我在没有抗锯齿的情况下绘制文本,那么它会有轻微的抗锯齿,但是当我打开抗锯齿时,我会感觉到差异,它更加抗锯齿。不明白。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 2013-07-25
    • 1970-01-01
    相关资源
    最近更新 更多