KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a custom layout to draw a line based on touch input. I have it drawing the line but when the user touches the screen, the line disapeers and it draws a new line. What I want it to do is to draw a new line and leave the previous line there. Here is my code: import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; public class DrawView extends View { Paint paint = new Paint(); float startX; float startY; float stopX; float stopY; public DrawView(Context context, AttributeSet attrs) { super(context, attrs); paint.setAntiAlias(true); paint.setStrokeWidth(6f); paint.setColor(Color.BLACK); paint.setStyle(Paint.Style.STROKE); paint.setStrokeJoin(Paint.Join.ROUND); } @Override protected void onDraw(Canvas canvas) { canvas.drawLine(startX, startY, stopX, stopY, paint); } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: startX = event.getX(); startY = event.getY(); return true; case MotionEvent.ACTION_MOVE: stopX = event.getX(); stopY = event.getY(); break; case MotionEvent.ACTION_UP: stopX = event.getX(); stopY = event.getY(); break; default: return false; } Invalidate(); return true; } }
Tags (comma-separated)
Save Edits
Cancel