Detect pinch action on android with Processing

Jachdich :

I am working on an android app that is written in Processing 3. It needs to be able to increase a variable when the pinch action "zoom in" is initiated, and decrease when "zoomed out".

Is there a built-in way of doing this in Processing, and if not can someone give me a hint in the right direction to creating my own solution?

Thanks in advance.

vs97 :

Take a look at the Ketai Library - KetaiGesture:

Provides gesture recognition services to a processing sketch. To receive gesture events a sketch can define the following methods:

...

onPinch(float x, float y, float r) - x,y of center, r is the distance

Example of code use to change the size of a circle using the Pinch motion:

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);
}

Hope this helps!

enter image description here

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=148837&siteId=1