canvas перетаскивание

Ответить
Аватара пользователя
alexmx
Сообщения: 193
Зарегистрирован: 10 мар 2014, 08:14

canvas перетаскивание

Сообщение alexmx » 14 авг 2014, 15:15

Доброго времени суток.
Как реализовать перетаскивание например кружка
Пробую делать так:
[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

Аватара пользователя
rezak90
Сообщения: 3422
Зарегистрирован: 26 июн 2012, 13:22
Откуда: UA
Контактная информация:

Re: canvas перетаскивание

Сообщение rezak90 » 14 авг 2014, 15:24

потому что нужно возвращать true в onTouchEvent
R.id.team
Политика на форуме запрещена

Аватара пользователя
alexmx
Сообщения: 193
Зарегистрирован: 10 мар 2014, 08:14

Re: canvas перетаскивание

Сообщение alexmx » 14 авг 2014, 15:29

Спасибо)))

Ответить