Как получить текущий холст?

У меня есть DrawView. Если я прикоснусь к этому виду, он рисует маленькие кружочки. Я не буду рисовать круги, но не касаюсь просмотра - с помощью функции "setPoints". Что мне делать:

package com.samples;
import ...

public class DrawView extends View {
    ArrayList<Point> points = new ArrayList<Point>();

    Paint paint = new Paint();

    private int pSize = 5;
    private int pColor = Color.BLACK;

    public DrawView(Context context, AttributeSet attrs) {

        super(context, attrs);

        setFocusable(true);
        setFocusableInTouchMode(true);

        this.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                v.setOnTouchListener(this);
                    Point point = new Point();
                    point.x = event.getX();
                    point.y = event.getY();
                    points.add(point); 
                    invalidate();
                }
                return true;
            }
        });
        requestFocus();
    }

    @Override
    public void onDraw(Canvas canvas) { 
        for (Point point : points) {
            canvas.drawCircle(point.x, point.y, pSize, paint);
        }
    }

    public void setPoints(Float xP, Float yP)
    {
        Point point = new Point();
        point.x = xP;
        point.y = yP;
        points.add(point);
        postInvalidate();
    }
}

class Point {
    float x, y;

    @Override
    public String toString() {
        return x + ", " + y;
    }
}

Скажите, пожалуйста, как получить холст из функции setPoints?

Обновление: Вау, это действительно интересная проблема. Мой DrawView содержится в HorizontalScrollView. Потому что, если я установлю в этом DrawView правильные координаты, никто не знает, где можно рисовать круги.

14
задан Sipty 16 June 2015 в 11:19
поделиться