2016-07-12 7 views
0

Я не могу получить объект холста в ontouch(). Без холста я не могу нарисовать круг, когда touched.How можно нарисовать любую фигуру или изображение при прикосновенииКак нарисовать на холсте при прикосновении

public class Board extends View implements View.OnTouchListener { 

public Board(Context context) { 
    super(context); 
    Paint paint1 = new Paint(); 
    paint1.setTextSize(50); 
    paint1.setColor(Color.WHITE); 

    View view=this; 
    view.setOnTouchListener(this);  
} 

@Override 
public void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    canvas.drawRGB(200, 100, 0); 

} 

@Override 
public boolean onTouch(View v, MotionEvent event) { 
    final int action = MotionEventCompat.getActionMasked(event); 
    int pointer = MotionEventCompat.getActionIndex(event); 


    if (action == MotionEvent.ACTION_DOWN) { 

     canvas.drawCircle(70, 1100, 50, paint1); 

    } 

    return false; 
} 
+0

'Canvas' не является локальным или глобальным объектом, так что вы не можете получить к нему доступ из события' onTouch() '. Либо создайте экземпляр Canvas для этого метода, либо используйте Global. – Riad

+0

Возможный дубликат [Draw Circle on touch] (http://stackoverflow.com/questions/11796357/draw-circle-on-touch) – 0X0nosugar

ответ

0

Чтобы рисовать на холсте, где бы вы ни находились, вам нужен путь для отслеживания ваших точек касания и пути. Используя объект пути, вы можете рисовать на холсте. См. Этот ответ Draw on touch