我画了3D对象。现在我想通过双指手势进行放大/缩小和移动对象。
我已在opengl
检查了许多链接以做手势,但没有得到太多帮助。
代码:
@Override
public boolean onTouchEvent(MotionEvent event) {
//
float x = event.getX();
float y = event.getY();
//If a touch is moved on the screen
if(event.getAction() == MotionEvent.ACTION_MOVE) {
//Calculate the change
float dx = x - oldX;
float dy = y - oldY;
//Define an upper area of 10% on the screen
int upperArea = this.getHeight() / 10;
//Zoom in/out if the touch move has been made in the upper
if(y < upperArea) {
z -= dx * TOUCH_SCALE / 2;
//Rotate around the axis otherwise
} else {
xrot += dy * TOUCH_SCALE;
yrot += dx * TOUCH_SCALE;
}
//A press on the screen
} else if(event.getAction() == MotionEvent.ACTION_UP) {
}
//Remember the values
oldX = x;
oldY = y;
//We handled the event
return true;
}
请事先帮助我。
答案 0 :(得分:1)
OpenGL唯一的目的是绘制东西。它就像铅笔和钢笔画在操作系统提供的一张纸上。 OpenGL不提供用户输入处理。 OpenGL也不是场景图,即它不管理其中包含对象的场景。它将点,线或三角形绘制到帧缓冲区,就是这样。
因此,您必须使用通常的Android用户交互界面来更改程序的某些内部状态,并触发完整的场景重绘以反映更改。