android - 是否可以更改触摸事件的调用频率?
问题描述
我正在位图上绘制路径。当我更快地移动手指时,它会画一条长线,例如 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;
}
解决方案
推荐阅读
- java - 如何更改 IntelliJ IDEA 中 for 循环声明中变量的颜色?
- javascript - 检查 sessionStorage 中的多个键的条件
- python - 将 Pandas 数据框总结为半小时
- java - 通过 Spring restTemplate 从嵌套的 JSON 对象中获取数组作为列表
- javascript - 如何调用对象当前状态对应的函数?
- code-organization - 痴迷于让代码“看起来很漂亮”有什么好处吗?
- angular - HammerJS Swipe 在移动设备或设备模式下的 Google Chrome 上不起作用
- r - 查找按月排序的 5 个最常购买的产品练习
- html - Django模板未格式化
正确标记
- azure - 为什么在入站策略中使用 xml-to-json 策略会导致正文为空?