【问题标题】:Detect pinch action on android with Processing使用 Processing 检测 Android 上的捏合动作
【发布时间】:2019-10-11 21:11:27
【问题描述】:

我正在开发一个用处理 3 编写的 android 应用程序。它需要能够在启动捏合动作“放大”时增加一个变量,并在“缩小”时减少一个变量。

Processing 中有内置的方法吗?如果没有,是否有人可以提示我创建自己的解决方案的正确方向?

提前致谢。

【问题讨论】:

标签: java android processing zooming pinchzoom


【解决方案1】:

看看Ketai Library - KetaiGesture

为处理草图提供手势识别服务。到 接收手势事件一个草图可以定义如下方法:

...

onPinch(float x, float y, float r) - 中心的x,y,r为距离

使用捏合动作改变圆圈大小的代码示例:

import ketai.ui.*;
import android.view.MotionEvent;
 
float ellipseWidth = 50;
float ellipseHeight = 50;
KetaiGesture gesture;
 
void setup() {
  size(displayWidth, displayHeight);
  gesture = new KetaiGesture(this);
}
 
void draw() {
  orientation(PORTRAIT);
  background(0);
  fill(0);
  stroke(255);
  ellipse(width/2, height/2, ellipseWidth, ellipseHeight);
}
 
void onPinch (float x, float y, float d) {
  ellipseWidth += d;
  ellipseHeight += d;
}

public boolean surfaceTouchEvent(MotionEvent event) {
  //Call this to keep mouseX and mouseY updated
  super.surfaceTouchEvent(event);
 
  //Forward the event to the class for processing
  return gesture.surfaceTouchEvent(event);
}

希望这会有所帮助!

【讨论】:

  • 感谢您回答这么老的问题!不幸的是,我正在度假一段时间,无法测试它,但我会尽量记住我什么时候回来。
  • @Jachdich 没问题,让我们知道您的进展情况以及它是否适合您!
  • @Jachdich 这个答案完全解决了你的问题吗?
  • 对不起,我还没走。由于我在使用移动数据,我无法下载巨大的 android SDK 来试用它。不幸的是,我可能还需要 3/4 周才能访问我的桌面(使用 Android SDK)。
猜你喜欢
  • 2011-02-07
  • 2012-06-11
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 2012-01-29
  • 2015-07-25
  • 2014-11-09
  • 2012-07-25
相关资源
最近更新 更多