Доброго времени суток.
Как реализовать перетаскивание например кружка
Пробую делать так:
[syntax=java]package ru.startandroid.develop.p1421drawingfigure;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new DrawView(this));
}
class DrawView extends View {
float touchX = 0;
float touchY = 0;
Paint p;
Rect rect;
RectF rectf;
Boolean drag = false;
public DrawView(Context context) {
super(context);
p = new Paint();
rect = new Rect();
rectf = new RectF(0,0,50,50);
}
@Override
protected void onDraw(Canvas canvas) {
p.setAntiAlias(true);
p.setColor(Color.RED);
p.setStrokeWidth(10);
p.setStyle(Paint.Style.STROKE);
rectf.offsetTo(touchX - 25, touchY - 25);
canvas.drawArc(rectf, 90, -360, false, p);
}
public boolean onTouchEvent(MotionEvent event){
if(event.getAction() == MotionEvent.ACTION_DOWN){
touchX = event.getX();
touchY = event.getY();
drag = true;
invalidate();
}
if(event.getAction() == MotionEvent.ACTION_MOVE){
if(drag){
touchX =touchX + event.getRawX();
touchY = event.getRawY();
invalidate();
}
}
if(event.getAction() == MotionEvent.ACTION_UP){
touchX = 0;
touchY = 0;
invalidate();
}
return false;
}
}
}[/syntax]
Но срабатывает только ACTION_DOWN
canvas перетаскивание
Re: canvas перетаскивание
потому что нужно возвращать true в onTouchEvent
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
Re: canvas перетаскивание
Спасибо)))