Hallo Zusammen
Ich bekomme vom onTouchEvent Punkte, immer nach 2 Punkten soll eine Linie gezogen werden, dies zwischen den nacheinander folgenden Punkten. Diese Linie sollte dann aber bestehen bleiben, das heisst, dass zwar eine neue hinzu kommt, die alte aber bestehen bleibt. Nun dies ist mein Problem. Ich kann zwar eine Linie machen, diese bleibt aber nicht bestehen!
Kann mir jemand erklären wie ich das hinkriege?
Edit: So funktioniert es nun, mit Paths klappt es perfekt! Hier ist der Code der funktioniert!
Java
package com.example.linienmachen;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
public class Touchclass extends View {
private Paint paint = new Paint();
private Path path = new Path();
int count = 1;
public Touchclass(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) {
if ((count%2 != 0)){
canvas.drawPath(path, paint);}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
float eventX = event.getX();
float eventY = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
count++;
if(count%2 != 1){
path.moveTo(eventX, eventY);
return true;
}
if(count%2 != 0){
path.lineTo(eventX, eventY);
break;
}
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
// nothing to do
break;
default:
return false;
}
// Schedules a repaint.
invalidate();
return true;
}
}
Alles anzeigen