间隔[40 cm; 80cm]

Number of occurrence of a face between an interval of [40 cm; 80cm]

每次相机和我的脸之间的距离在 40 厘米到 80 厘米之间时,我都尝试增加 ++ 一个数字 (i)。不幸的是,当它发生时,textview 显示(出现次数为:50)。请帮助我

public void update(final Messsage msg) {    
    for(int i = 0; i < 50; ++i) {
        if (msg.getDistanceToFace() > 40 && msg.getDistanceToFace() < 80) {
            textView.setText("The number of occurrence is: " + i);
            textView.setTextColor(Color.GREEN);
        }
    }
}

您可能应该在设置文本后添加一个 break,您的编码方式将为 i 的所有迭代设置一个文本,但您只会看到最后一个 (50)

如果你只想在脸离开一定长度的时候增加数字,你是不是应该在这条线上做更多的事情?

public void update(final Messsage msg) {
    int i = 0;
    if (msg.getDistanceToFace() > 40 && msg.getDistanceToFace() < 80) {
        i++;
        textView.setText("The number of occurrence is: " + i);
        textView.setTextColor(Color.GREEN);
    }
}

也许您需要 i 一个全局变量或函数的参数,如果没有更多代码则不确定。

如果不想让i增加的太快(因为每次调用update函数都会增加,而且phone离脸很近),执行此操作的简单代码类似于

public void update(final Messsage msg) {
    boolean isCloseToFace = false;
    int i = 0;
    if (msg.getDistanceToFace() > 40 && msg.getDistanceToFace() < 80) {
        if (!isCloseToFace) {
            i++;
            isCloseToFace = true;
        }
        textView.setText("The number of occurrence is: " + i);
        textView.setTextColor(Color.GREEN);
    } else {
        isCloseToFace = false;
    }
}