setDither,setFilterBitmap和setAntiAlias在Canvas中做了什么?

Stu*_*ent 12 android bitmap android-canvas

通常我看到的样本,在尝试在画布上绘制位图时使用此方法.例如:

paint.setAntiAlias(true);
paint.setFilterBitmap(true);
paint.setDither(true);
Run Code Online (Sandbox Code Playgroud)

但我不知道这三种方法是做什么的?当我必须使用它们时?

sti*_*ike 15

来自doc

Paint.setAntiAlias

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

Paint.setFilterBitmap

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

Paint.setDither

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

  • 这三个的例子将是值得赞赏的,或者至少是一个更友好的解释。我无法理解字面文档。 (2认同)