我想在rajawali vuforia上找到已找到标记的数量。
虽然我们有方法:
1- protected void foundFrameMarker(final int markerId, Vector3 position,Quaternion orientation) {} // this method is called when found any marker until the marker disappeared
2- public void noFrameMarkersFound() {} // this method is called when no markers appeared or found
如何使用这些方法来计算找到的标记?还是有另一种方法来计算?
答案 0 :(得分:0)
foundFrameMarker
。为了计算找到的标记,您应该在渲染器中添加一个int变量来计算它们。在渲染循环(onRenderFrame
)的开头重置它,并在foundFrameMarker
内增加它:
public void onRenderFrame(GL10 gl) {
...
mMarkerCount = 0;
...
}
protected void foundFrameMarker(int markerId, Vector3 position, Quaternion orientation) {
mMarkerCount++;
...
}
答案 1 :(得分:0)
@yakobom的答案解决了问题,但它重复计算每一帧,所以我添加了一些代码:
我初始化了另一个int以获得max
到达的mMarkerCount
计数,在onCreate(...)
的活动类中我添加了一个计时器,每秒刷新一次以将其设置为TextFeild并重置最大
在onCreate的Activity类中:
Thread t = new Thread() {
@Override
public void run() {
try {
while (!isInterrupted()) {
Thread.sleep(1000);
runOnUiThread(new Runnable() {
@Override
public void run() {
te.setText(mRenderer.max+"");
mRenderer.max=0;
}
});
}
} catch (InterruptedException e) {
}
}
};
t.start();
在Renderer课上:
protected void foundFrameMarker(int markerId, Vector3 position,
Quaternion orientation) {
...
mMarkerCount++;
if (mMarkerCount > max)
max = mMarkerCount;
...
}