首页 > 解决方案 > 是否可以更改触摸事件的调用频率?

问题描述

我正在位图上绘制路径。当我更快地移动手指时,它会画一条长线,例如 MotionEvent.ACTION_MOVE 出现两次。当我试图通过快速移动手指来绘制圆形线时,会出现直线。我不想出现直线。我想画圆形线。如果我慢慢地移动我的手指,动作移动被称为更多,我会取得好成绩。即使我快速移动手指,我也希望越来越多地调用 action_move 事件。是否可以更改触摸事件的调用频率?如果我能做到这一点,我可以获得更好的输出。

private Canvas canvasBitmap;
private Bitmap bitmap;  

protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(w, h, oldw, oldh);
    bitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
    canvasBitmap = new Canvas(bitmap);
}

protected void onDraw(Canvas canvas)
{
    canvas.drawBitmap(bitmap, 0, 0, paintDraw);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    float touchX = event.getX();
    float touchY = event.getY();

    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            drawPath.moveTo(touchX, touchY);
            break;
        case MotionEvent.ACTION_MOVE:
                drawPath.lineTo(touchX, touchY);
                canvasBitmap.drawPath(drawPath, paintDraw);
            break;
        case MotionEvent.ACTION_UP:
            drawPath.lineTo(touchX, touchY);
            canvasBitmap.drawPath(drawPath, paintDraw);
            drawPath.reset();
            break;
        default:
            return false;
    }
    invalidate();
    return true;

}

标签: androidandroid-canvasandroid-viewandroid-bitmap

解决方案


推荐阅读