0

onTouchイベントを使用してX軸をオンにできる3DキューブをAndroidopenGLで作成しましたが、UIとして使用したいのですが、たとえば、片方の顔がカメラに面しているときに取得しようとしています。サーフェスをタップすると、onClickリスナーとして機能しますが、カメラに面している顔を確認するために使用しているifステートメントに問題があります。クラス全体は次のとおりです。

public class GLCubeEx extends Activity {

GLSurfaceView ourSurface;
GLCubeEx This = this;




public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    ourSurface = new GLSurfaceView(this);
    ourSurface.setRenderer(new GLCubeRenderer());
    setContentView(ourSurface);





}
public boolean onTouchEvent(MotionEvent event) {

     float touchedX = 0;
     float touchedY = 0;

     Button btn = new Button(this);

        LinearLayout.LayoutParams paramsd = new LinearLayout.LayoutParams
        (LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

        paramsd.height = 60;
        paramsd.width = 120;

        btn.setLayoutParams(paramsd);
        addContentView(btn, paramsd);


    if (event.getAction() == MotionEvent.ACTION_DOWN){
         GLCubeRenderer.xAngle = (touchedX - event.getX())/2f;
           GLCubeRenderer.yAngle = (touchedY - event.getY())/2f;

       } else if (event.getAction() == MotionEvent.ACTION_MOVE){
           GLCubeRenderer.xAngle = (touchedX - event.getX())/2f;
           GLCubeRenderer.yAngle = (touchedY - event.getY())/2f;

           touchedX = event.getX();
           touchedY = event.getY();

}






 **EDIT here, thaks to Laurence pointing out** 
    if(GLCubeRenderer.xAngle > -118f && GLCubeRenderer.xAngle < -65f){

        btn.setText("working");


    }

    String s = Float.toString(GLCubeRenderer.xAngle);
    btn.setText(s);


    return true;


}

public void onPause() {
    super.onPause();
    ourSurface.onPause();
}

public void onResume() {
    super.onResume();
    ourSurface.onResume();
}

}

私が抱えている問題は、変数xAngle(画面をスワイプしてキューブを回転させるために使用されるときに作成されるフロート)が2つの値の間にあるかどうかをチェックするモーションイベントのifステートメントがトリガーされていないことです。btnはxAngleの値を表示するアプリのボタンですが、見たことのないアイデアや明らかな解決策がトリガーされない理由がわかりません。

4

2 に答える 2

0

不可能だよ:

GLCubeRenderer.xAngle < -118f && GLCubeRenderer.xAngle > -65f

あなたはおそらく意味しました:

GLCubeRenderer.xAngle > -118f && GLCubeRenderer.xAngle < -65f
于 2013-02-21T22:51:55.620 に答える
0

オンタッチのすべてのサイクルで、ボタンのテキストが角度に設定されます。ifステートメントが実行されているかどうかをどのように確認していますか。ここに入力

于 2013-02-21T23:36:08.360 に答える