有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android:使用onDoubleTap绘制圆

我创建了一个扩展ImageView的公共类,名为ZoomInZoomOut。在该视图中,将一根手指放在下方可让用户拖动图像。两个手指捏入和捏出允许用户放大或缩小。这些都很好用

现在我想双击在用户触摸的精确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;
    }
}

共 (1) 个答案

  1. # 1 楼答案

    在绘制位图后,您不会对其执行任何操作。您还试图将位图绘制到由位图创建的画布上

    您应该覆盖onDraw并在那里绘制位图,同时使用onDoubleTap根据需要更新位图