【问题标题】:Drawing a smooth, pixelated line in Android在 Android 中绘制平滑、像素化的线条
【发布时间】:2017-10-03 01:52:45
【问题描述】:

我想得到什么:

我得到了什么:

我通过连接两个连续坐标来绘制:

Paint paint = new Paint();
paint.setColor(Color.DKGRAY);
paint.setStrokeWidth(75);
paint.setStrokeCap(Paint.Cap.ROUND);

// Tried without success:
paint.setAntiAlias(false);

// Also tried without success:
paint.setAntiAlias(true);

// Loop list<Point>; keep track of previous Point
canvas.drawLine(xPrev, yPrev, x, y, paint);

【问题讨论】:

    标签: android graphics android-canvas paint antialiasing


    【解决方案1】:

    使用paint.setAntiAlias(true);获得平滑效果。

    或者使用paint.setMaskFilter(new BlurMaskFilter(/*args*/));来实现模糊效果。

    还要确保从 Android 清单中关闭硬件加速。

    如果仍然不如预期,请在绘制时使用抗锯齿,然后按比例缩小并按比例放大,或者如果可能的话,绘制小尺寸的路径并按比例放大。

    【讨论】:

    • 输出是一样的。
    • 这似乎不起作用,除非您使用软件渲染。
    • 是的,这就是我所说的关闭硬件加速的意思。
    【解决方案2】:

    尝试使用paint.setStrokeCap(Paint.Cap.ROUND);paint.setStrokeJoin()。希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-16
      • 1970-01-01
      • 1970-01-01
      • 2017-06-10
      相关资源
      最近更新 更多