Paint coordinates Android Studio

1

I'm trying to draw a series of points (coordinates), in Android Studio, but I only get to draw the last coordinate that happened, here I leave the code I have

       class Vista extends View {

        Paint paint = new Paint();
        public Vista(Context context) {
            super(context);
            paint.setColor(Color.RED);
            paint.setStrokeWidth(15);
            paint.setStyle(Paint.Style.STROKE);
        }

        public void onDraw(Canvas canvas) {

            X_coordenadas.add((float) 100);
            X_coordenadas.add((float) 200);
            X_coordenadas.add((float) 300);

            Y_coordenadas.add((float) 100);
            Y_coordenadas.add((float) 200);
            Y_coordenadas.add((float) 300);


            for(int i=0; i<X_coordenadas.size();i++) {
                float  x  = X_coordenadas.get(i);
                float  y  = Y_coordenadas.get(i);

                Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.planta2_as);

                canvas.drawBitmap(b, 0, 0, paint);
                canvas.drawPoint(x, y, paint);
                super.onDraw(canvas);
            }

        }

If someone could tell me how to do it, I'd really appreciate it

Greetings

    
asked by Antonio 14.03.2018 в 11:32
source

1 answer

0

To draw the points called super.onDraw(canvas); out of the loop:

public void onDraw(Canvas canvas) {
    X_coordenadas.add((float) 100);
    X_coordenadas.add((float) 200);
    X_coordenadas.add((float) 300);

    Y_coordenadas.add((float) 100);
    Y_coordenadas.add((float) 200);
    Y_coordenadas.add((float) 300);


    for (int i = 0; i < X_coordenadas.size(); i++) {
        float x = X_coordenadas.get(i);
        float y = Y_coordenadas.get(i);

        ...
        ...
        canvas.drawPoint(x, y, paint);

    }
    super.onDraw(canvas);
}

I notice that you are also drawing a bitmap but it is always positioning in left=0 , right=0 , so it will always be displayed in the upper left corner.

You can use the value of the same x coordinate, and to show the image:

...

  for (int i = 0; i < X_coordenadas.size(); i++) {
            float x = X_coordenadas.get(i);
            float y = Y_coordenadas.get(i);

            Bitmap b = BitmapFactory.decodeResource(getResources(), R.drawable.planta2_as);
            canvas.drawBitmap(b, x, y, paint); //* aquí
            canvas.drawPoint(x, y, paint);

        }
        super.onDraw(canvas);

   ...

you would have something similar to:

    
answered by 14.03.2018 / 17:30
source