我创建了一个扩展 ImageView 的公共(public)类,名为 ZoomInZoomOut。在此 View 中,按下一根手指可以让用户拖动图像。两根手指的捏合和捏合允许用户放大或缩小。这些都工作正常。
现在我想双击以在用户触摸的确切 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;
}
}
最佳答案
绘制位图后,您不会对位图执行任何操作。您还尝试将位图绘制到从位图创建的 Canvas 上。
您应该重写 onDraw 并在那里绘制位图,同时使用 onDoubleTap 根据需要更新位图。
关于java - Android:使用onDoubleTap画圆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29153219/