Dokunma girdisine dayalı bir çizgi çizmek için özel bir düzenim var. Çizgiyi çiziyorum ama kullanıcı ekrana dokunduğunda, çizgiyi dağıtır ve yeni bir çizgi çizer. Yapmak istediğim şey yeni bir çizgi çizmek ve oradaki bir önceki çizgiyi bırakmak. Bunun yerine sadece sonuncusu tüm satırları depolamak için gerekenAndroid Canvas drawLine
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;
}
}
Teşekkürler. Bir problem, tuvali her seferinde tekrar tekrar çizmektir. Nasıl duracağım tuvali yeniden çizmekten mi? –
Anladığımdan emin değilim ... tuvalin yeniden çizilmemesi gerekiyor mu? Kodumda küçük bir hata vardı ("ACTION_UP" ACTION_MOVE "idi) ve 5 dakikalık süre zarfında düzelttim. Belki yanlış versiyonun var mı? – tom
Teşekkürler harika eample –