为Vuforia样本添加手势处理程序

时间:2015-06-01 15:51:59

标签: android gesture-recognition vuforia

我是vuforia的新手。我能够成功运行样本。但是没有一个样本使用这些手势处理程序(捏合,旋转和拖动)。我想在vuforia示例的用户定义目标中应用这些手势处理程序。

我试图使用 GestureDetector类添加这些手势,但无法弄清楚如何添加到vuforia示例的用户定义目标

有没有办法将这些手势处理程序(捏合,旋转和拖动)添加到用户定义的vuforia样本目标?

这是来自 GestureDetector类的手势处理代码:

public class MainActivity extends Activity {

@Override
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView=(ImageView)findViewById(R.id.imageView);
        SGD = new ScaleGestureDetector(this,new ScaleListener());
  }

public boolean onTouchEvent(MotionEvent ev) {
  SGD.onTouchEvent(ev);
  return true;
}

 private class ScaleListener extends ScaleGestureDetector.
  SimpleOnScaleGestureListener {
   @Override
   public boolean onScale(ScaleGestureDetector detector) {
     scale *= detector.getScaleFactor();
     scale = Math.max(0.1f, Math.min(scale, 5.0f));

     matrix.setScale(scale, scale);
     iv.setImageMatrix(matrix);
     return true;
   }
 }
}

1 个答案:

答案 0 :(得分:1)

在UserDefinedTargetRenderer类中有一个名为renderFrame的方法,它在每一帧都被调用。属性Rotate,scale和Translate分配给renderFrame()中的3d模型。

您需要做的就是将比例值从MainActivity传递到UserDefinedTargetRenderer类中的renderFrame()。

您需要将比例值传递给此行: Matrix.scaleM(modelViewMatrix, 0, kObjectScale, kObjectScale, kObjectScale);

让我知道结果