Невозможно нарисовать вид на поверхности при рисовании - PullRequest
0 голосов
/ 09 марта 2012

Привет, я использую SurfaceView для рисования на холсте. Когда я использую вот так

canvas.drawCircle(100, 100, 5, paint); //it is drawing fine

, а я использую вот так:

canvas.drawCircle(x, y, 5, paint); //it's not drawing.x,y being some points on screen and they are floats.

Любая помощь

Ответы [ 3 ]

0 голосов
/ 09 марта 2012
         @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            canvas.restoreToCount(1);
            canvas.clipRect(new Rect(0, 0, getWidth(), getHeight()));
            canvas.drawCircle(x, y, 10, paint);
            canvas.save();      
        }
        float x,y;
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            x=event.getX();
            y=event.getY();
            invalidate();
            return true;
        }
0 голосов
/ 05 февраля 2013

Некоторые типы представлений не перерисовываются по умолчанию.Если вы хотите, сделайте это, внедрите SurfaceHolder.Callback в вашем представлении и добавьте следующее:

@Override
public void surfaceCreated(SurfaceHolder holder) {
    setWillNotDraw(false);
}
0 голосов
/ 09 марта 2012

Проверьте, положительны ли ваши координаты x и y и находятся ли они в пределах вашего обзора:

x >= 0 && x < canvas.getWidth() && y >= 0 && y < canvas.getHeight()
...