java - Android:使用onDoubleTap画圆

标签 java android gesture ondraw gesturedetector

我创建了一个扩展 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/

相关文章:

Javafx SceneBuilder 不可共享或 derby 未在 .exe 中连接

java - 使用gitlab ci将maven项目部署到tomcat

keystore 的 Android Studio 备份

javascript - Hammer.js:如何检测任意数量/多个手指的捏合

ios - 在触摸事件中,确定触摸了哪个 subview

java - 如何在 symbian 应用程序中从 Web 服务读取 xml

java - PreferenceFragment 在 Fragment 布局上重叠

android - 将时间选择器添加到日期选择器android

android触发另一个项目 Activity

iphone - 使用手势进行水平 UIView 过渡