Java Android中的自定义曲线

Java Android中的自定义曲线,java,android,canvas,shader,bezier,Java,Android,Canvas,Shader,Bezier,我正在做一个游戏,我有一些贝塞尔曲线。目前,一切都很好,它正常工作,尽管我在这个曲线上做了一些复杂的操作。要绘制曲线,我使用画布和路径,如下所示: private void refresh() { mPath = new Path(); mPath.moveTo(start_x, start_y); mPath.cubicTo(anchor1_x, anchor1_y, anchor2_x, anchor2_y, end_x, end_y); } public void

我正在做一个游戏,我有一些贝塞尔曲线。目前,一切都很好,它正常工作,尽管我在这个曲线上做了一些复杂的操作。要绘制曲线,我使用画布和路径,如下所示:

private void refresh() {
    mPath = new Path();
    mPath.moveTo(start_x, start_y);
    mPath.cubicTo(anchor1_x, anchor1_y, anchor2_x, anchor2_y, end_x, end_y);
}
public void draw(Canvas canvas, Paint paint) {
    Path newPath = new Path(mPath);
    Matrix mMatrix = new Matrix();
    mMatrix.setTranslate(-mCamera.x1, -.mCamera.y1);
    mMatrix.postScale(mCamera.getWidthRatio(), mCamera.getHeightRatio());
    newPath.transform(mMatrix);
    canvas.drawPath(newPath, paint);
}
“绘制”参数通常为以下参数:

 curvesPaint = new Paint();
 curvesPaint.setColor(0xFFFFFFFF);
 curvesPaint.setAntiAlias(true);
 curvesPaint.setStrokeCap(Paint.Cap.ROUND);
 curvesPaint.setStrokeJoin(Paint.Join.ROUND);
 curvesPaint.setStyle(Paint.Style.STROKE);
 curvesPaint.setStrokeWidth(canvas.getHeight() / 100f);
 if (shadow)
      curvesPaint.setShadowLayer(canvas.getHeight() / 50f, 0, 0, 0xAAFFFFFF);
 else
     curvesPaint.setShadowLayer(0, 0, 0, 0xAAFFFFFF);

我的问题是:如何使曲线更漂亮?目前,它们只是白色的(或带有白色阴影的白色)。我想能够画出一个很好的梯度或他们的模型,我不知道如何做到这一点。我在考虑Paint类的setShader函数,但我不知道是否可以使用它,或者如何使用它。由于fps较低,其他解决方案(如在一条路径上方绘制多条路径)显然是不切实际的

我建议您开始考虑使用OpenGL或第三方包装库,如libgdx<代码>画布用于相对简单的图形。我不认为它利用了GPU的设备。要充分利用GPU的强大功能,您需要使用OpenGL