Итак, я пытаюсь сделать приложение для adroid, которое рисует поток кругов, как touchhevent. Если я рисую на левой стороне экрана, он должен нарисовать зеленый круг, и если он справа, он должен нарисовать синий круг. Приложение делает это, но оно меняет цвет всех уже нарисованных кругов. SO сделал класс Draw circle и список объектов массивов для обработки каждого cricle как отдельного объекта objec, все еще не работающего даже после события Touchup. код для этого дается нижеИзменение цвета краски меняет все цвета круга
private class Drawcirlce {
public Drawcirlce(Canvas c) {
// TODO Auto-generated constructor stub
for (Point point : points) {
if(flag==true)
c.drawCircle(point.x, point.y, 5, paint);
else
c.drawCircle(point.x, point.y, 5, p2);
}
invalidate();
}
/*for (Point point : points) {
if(flag==true)
mcan.drawCircle(point.x, point.y, 5, paint);
else
mcan.drawCircle(point.x, point.y, 5, p2);
}*/
}
public void onDraw(Canvas canvas) {
i++;
//Drawcirlce d=new Drawcirlce();
dc.add(new Drawcirlce(canvas));
Log.d(TAG, "i: " + i);invalidate();
}
public boolean onTouch(View view, MotionEvent event) {
// if(event.getAction() != MotionEvent.ACTION_DOWN)
// return super.onTouchEvent(event);
Point point = new Point();
point.x = event.getX();
point.y = event.getY();
if(point.x>200){
paint.setColor(Color.BLUE);
flag=true;
}
else{
p2.setColor(Color.GREEN);
flag=false;
}
points.add(point);
//dc.add(new Drawcirlce(mcan));
invalidate();
Log.d(TAG, "point: " + point);
return true;
}
public boolean onTouch(View view, MotionEvent event) {
// if(event.getAction() != MotionEvent.ACTION_DOWN)
// return super.onTouchEvent(event);
Point point = new Point();
point.x = event.getX();
point.y = event.getY();
if(point.x>200){
paint.setColor(Color.BLUE);
flag=true;
}
else{
p2.setColor(Color.GREEN);
flag=false;
}
points.add(point);
//dc.add(new Drawcirlce(mcan));
invalidate();
Log.d(TAG, "point: " + point);
return true;
}
Любой знает, что я делаю неправильно, или если это способ обойти это?
u поделился неполным кодом, поэтому сложно понять проблему ур. Мое лучшее предположение - это то, что у ввернуты переменные флага. – the100rabh