57

我可以在画布上使用抗锯齿进行绘制吗?

我需要我的圆圈和线条有光滑的边缘。

4

3 回答 3

91

绘图操作想要Paint。在这个Paint你设置Paint.setFlags(Paint.ANTI_ALIAS_FLAG)

于 2012-05-05T20:41:51.467 回答
30

看一下这个。它相当使用平滑的边缘.. http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/FingerPaint.html

获得抗锯齿所需的油漆属性是:

     mPaint = new Paint();
     mPaint.setAntiAlias(true);

绘图用途:

     mPath = new Path();
     mPath.reset();
     mPath.moveTo(x, y);//can be used where to trigger the path

onDraw 方法应包含:

     canvas.drawPath(mPath, mPaint);

将 mPath 和 mPaint 声明为全局。

于 2012-05-05T19:25:38.190 回答
0

您可以ANTI_ALIAS_FLAG在 Paint 构造函数中提供Paint(int) 。该ANTI_ALIAS_FLAG标志在绘制时启用抗锯齿。启用此标志将导致所有支持抗锯齿的绘制操作都使用它。

或者您可以稍后使用setFlags(int)方法设置此标志

在 Kotlin 中的示例实现:

 //Paint
private var indicatorPaint: Paint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
    isAntiAlias = true
    color = fillColor
    strokeWidth = lineThickness.toFloat()
    style = Paint.Style.STROKE
}
于 2021-01-22T08:24:16.500 回答