Я сделал публичный класс, который расширяет ImageView под названием ZoomInZoomOut. В этом представлении, поместив один палец вниз, пользователь может перетащить изображение вокруг. Два пальца вставляются и выходят, что позволяет пользователю увеличивать или уменьшать масштаб. Все это прекрасно работает.Android: Использование onDoubleTap для рисования круга
Теперь я хочу дважды нажать, чтобы нарисовать круг с точными координатами x и y, где пользователь прикасается. По какой-то причине нижеприведенный код не рисует круг ... ничего не происходит.
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onDoubleTap(MotionEvent event) {
Bitmap bmOverlay = Bitmap.createBitmap(containerWidth,
containerHeight,
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmOverlay);
Paint p = new Paint();
p.setAntiAlias(true);
p.setColor(Color.RED);
p.setStrokeWidth(2);
p.setStyle(Paint.Style.STROKE);
canvas.drawBitmap(bmOverlay, matrix, null);
canvas.drawCircle(event.getX(),event.getY(),
100, p);
return true;
}
@Override
public boolean onDown(MotionEvent e) {
return false;
}
}
Где я должен переопределять onDraw? В активности, отображающей изображениеView? – nnnnnnitters
Вам нужно создать собственное представление, чтобы обрабатывать чертеж в представлении напрямую, а не пытаться рисовать и перемещать растровое изображение. Проверьте http://developer.android.com/training/custom-views/custom-drawing.html –
Собственно, этот класс MyGestureDetector находится внутри класса, который расширяет ImageView. Так что я должен сделать другой пользовательский вид для обработки чертежа? – nnnnnnitters