安卓绘制画布上的图形

4

enter image description here

我有一个canvas,在上面使用点数组绘制了这个图形。如何为其填充特定的颜色?

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    RectF oval = new RectF(90, 100, 200, 300);
    Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);

    paint.setColor(Color.RED);
    paint.setStrokeWidth(5f);

    //  canvas.drawRect(oval, paint);

    //canvas.drawArc(oval, 30f, 100f, true, paint);

    float [] pts = {0,200,
                    120,140,120,140,
                    180,20,180,20,
                    260,100,260,100,
                    350,20,350,20,
                    410,140,410,140,
                    530,200,530,200,
                    410,260,410,260,
                    350,380,350,380,
                    260,300,260,300,
                    180,380,180,380,
                    120,260,120,260,
                    0,200
     };

    //canvas.drawPoints(pts, paint);
    canvas.drawLines(pts, paint);

    //RectF tail = new RectF(0f, 50f, 200f,100f);   
    //canvas.drawArc(tail, 0f, 50f, true, paint);

    //canvas.drawRoundRect(oval, 20f, 20f, paint);

    invalidate();

}

基本上我想做的就是沿着数组中存在的这些点填充颜色。有什么帮助吗?

尝试将样式应用于“Paint”... paint.setStyle(Paint.Style.FILL); - Gopal Gopi
很抱歉地说,它不起作用。还有其他建议吗? - Pankaj
这些点代表什么?矩形还是三角形或者其他的形状?你能展示一张绘制后的图片吗? - Gopal Gopi
我已经更新了我的问题,你可以在上面看到图片。谢谢。 - Pankaj
一个相同的问题之前已经被Pavel解决了。 - Yannic Welle
1个回答

1

您需要构建一个路径并使用canvas.drawPath。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接