我目前正在开发Android上的简单绘图应用程序,它应该像微软的Paint一样工作。为了做到这一点,我使用了Canvas类的drawOwal方法,只要我慢慢移动鼠标/手指,一切看起来都很好,但是当我把它紧固起来而不是平滑线时,它会被分割成小圆圈。
如何使用RectF / drawOval改进我的代码,以便不会出现这些差距?
我的绘图代码如下所示:
@Override
protected void onDraw(Canvas canvas) {
for(Shape draw: punkty) {
paint.setColor(draw.getColor());
if (draw.getShape() == 0)
canvas.drawOval(draw.getFigure(), paint);
else if (draw.getShape() == 1)
canvas.drawRect(draw.getFigure(), paint);
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
shapeToDraw.setFigure(new RectF(event.getX() - shapeToDraw.getSize(), event.getY() - shapeToDraw.getSize(), event.getX() + shapeToDraw.getSize(), event.getY() + shapeToDraw.getSize()));
punkty.add(new Shape(shapeToDraw.getColor(), shapeToDraw.getFigure(), shapeToDraw.getSize(), shapeToDraw.getShape()));
invalidate();
return true;
}