Я правильно рисую на холсте и сохраняю его в растровое изображение. Тем не менее, я хочу сбросить холст на белый, нажав кнопку.
Вот мой код:
public class Canvas extends View {
Paint paint;
Path path;
boolean cc = false;
public Canvas(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
paint = new Paint();
path = new Path();
paint.setAntiAlias(true);
paint.setColor(Color.RED);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeWidth(5f);
}
@Override
protected void onDraw(android.graphics.Canvas canvas) {
super.onDraw(canvas);
if (!cc) {
canvas.drawPath(path, paint);
}
else {
canvas.drawColor(Color.WHITE);
cc = false;
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
float xPos = event.getX();
float yPos = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
path.moveTo(xPos, yPos);
return true;
case MotionEvent.ACTION_MOVE:
path.lineTo(xPos, yPos);
break;
case MotionEvent.ACTION_UP:
break;
default:
return false;
}
invalidate();
return true;
}
public void clear() {
cc = true;
invalidate();
}
моя функция clear () установила cc в "true", а затем аннулировала () вызывает функцию onDraw (). Но кажется, что «cc» не распознается внутри onDraw () или внутри него всегда одинаковое значение. Я пробовал path.reset () безрезультатно.
вызов clear () не возвращает никакой ошибки.