13

Usually samples that I see,use this methods when try to draw bitmaps on canvas.For example:

paint.setAntiAlias(true);
paint.setFilterBitmap(true);
paint.setDither(true);

But I do not know what those three methods do?When I have to use them?

4

2 回答 2

16

文档

Paint.setAntiAlias

setFlags() 的助手,设置或清除 ANTI_ALIAS_FLAG 位 AntiAliasing 平滑正在绘制的边缘,但对形状的内部没有影响。请参阅 setDither() 和 setFilterBitmap() 以影响颜色的处理方式。

Paint.setFilterBitmap

setFlags() 的助手,设置或清除 FILTER_BITMAP_FLAG 位。过滤会影响位图在变换时的采样。过滤不会影响位图中的颜色如何转换为设备像素。这取决于抖动和 xfermodes。

Paint.setDither

setFlags() 的助手,设置或清除 DITHER_FLAG 位抖动会影响比设备精度更高的颜色如何被下采样。没有抖动通常更快,但精度更高的颜色会被截断(例如 8888 -> 565)。抖动尝试分配此过程中固有的错误,以减少视觉伪影。

于 2013-06-28T15:36:52.017 回答
1

我想解释一下抗锯齿如何产生平滑的边缘,它通过混合前景和背景颜色来创建更平滑的边缘。比如背景色是透明的,前景色是蓝色的,抗锯齿会使边缘的像素逐渐从蓝色变为透明。这使边缘看起来光滑。

于 2020-02-05T16:39:17.607 回答