安卓:星路不会填满



我有一个类,它使用Path创建一个星形 这段代码如下:

public Star(int x, int y, int size) {
this.x = x;
this.y = y;
this.size = size;
rotateSpeed = 1.5f;
path = new Path();
path.moveTo(x, y-size);
for(int i = 1; i < 11; i++) {
double radius;
if(i % 2 == 0)
radius = size;
else
radius = size/2.2;
double angleRad = Math.toRadians(360/10) * i;
double cosY = y - (Math.cos(angleRad) * radius);
double tanX = x + (Math.sin(angleRad) * radius);
path.lineTo((int)tanX, (int)cosY);
path.moveTo((int)tanX, (int)cosY);
}
path.setLastPoint(x, y-size);
}

问题是它只绘制了一个轮廓,实际上不会填充它,尽管我明确指出paint.setStyle(Paint.Style.FILL);

我的绘图代码是:

public void drawObject(Canvas canvas, boolean antialias) {
Paint p = new Paint();
p.setStyle(Paint.Style.FILL);
p.setAntiAlias(antialias);
p.setColor(color);
canvas.drawPath(path, p);
//Outline
p.setStyle(Paint.Style.STROKE);
p.setStrokeWidth(5);
p.setColor(Color.BLACK);
canvas.drawPath(path, p);
}

我不明白我做错了什么。为什么它不会填满?

p.setColor(color);中的"颜色"可能是透明的。确保颜色例如0xffRRGGBB

也不需要path.moveTo((int)tanX, (int)cosY);。前面的lineTo()可以完成这项工作。

相关内容

  • 没有找到相关文章

最新更新