Дополнительная строка при использовании STROKE в качестве стиля с использованием Canvas - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь нарисовать 2D-треугольник в Android-студии, используя canvas, поэтому, если я использую приведенный ниже код для рисования треугольника без его заполнения, он дает дополнительную линию. Хотя, если я использую тот же код для заполнения треугольника, вывод правильный. Ниже приведен мой код для обоих случаев:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new MyView (MainActivity.this));
    }

    public class MyView extends View{
        public MyView(Context context){
            super(context);
        }

        protected void onDraw(Canvas canvas){
            super.onDraw(canvas);
            Paint paint=new Paint();
            Path path=new Path();
            paint.setStyle(Paint.Style.STROKE);
            paint.setColor(Color.WHITE);
            canvas.drawPaint(paint);
            Point a=new Point(300,200);
            Point b=new Point(100,500);
            Point c=new Point(900,800);

            paint.setColor(Color.BLUE);

            path.lineTo(a.x,a.y);
            path.lineTo(b.x,b.y);
            path.lineTo(c.x,c.y);
            path.lineTo(a.x,a.y);
            path.close();
            canvas.drawPath(path,paint);}

В стиле Stroke: enter image description here

В стиле Fill: enter image description here

1 Ответ

0 голосов
/ 01 ноября 2019

Сначала используйте:

path.moveTo()

, затем

path.lineTo()
path.lineTo()
path.lineTo()
...