문제

Java / Android Noob onTouchListener를 사용하는 것이 변수 x + 1을 변경하고 잘 작동하지만 릴리스 할 때 x 변수가 0이 곡선을 줄일 때까지 x 변수를 사용하고 싶습니다.그래서 :

    Imageview image = (ImageView) findViewById(R.id.fgView);

    image.setOnTouchListener(new View.OnTouchListener()
    {

        public boolean onTouch(View v, MotionEvent event)
        {switch (event.getAction() & MotionEvent.ACTION_MASK)
            {

            case MotionEvent.ACTION_DOWN:

                    mode=1;

                break;
            case MotionEvent.ACTION_UP:

                mode=2;

                break;
            case MotionEvent.ACTION_POINTER_UP:

                mode2=2;

                break;
            case MotionEvent.ACTION_MOVE:

                mode=1;

                break;
            case MotionEvent.ACTION_POINTER_DOWN:

                mode2=1;

                break;
            }

        }
       if(mode==1){
       x++;
       }

       if(mode==2){
       x * 0.9
       }

       //mode2 is filler

     }
.

이제는 잘 작동하므로 내 문제가 릴리스 후에 계속해서 감소 할 수있게하지만 SetonTouchListener에서는 작동하지 않습니다. 어쩌면 이와 같은 것 :

     public boolean onTouchFalse(View v){
          if(x>0){
              x * 0.9
          }
     }
.

또는 심지어

     public boolean image.isOnScreen{
         if(x>0){
            x = x * 0.9
         }
     }
.

tl; DR : 나는 x가 감가 상각하기 위해 사용할 수있는 일종의 청취자를 찾고 있습니다.

리스너가 있거나 일부 클래스가 누락 되었습니까?모든 도움을 주셔서 감사합니다!

도움이 되었습니까?

해결책

    final Handler handler = new Handler();


    image.post( new Runnable() {
        @Override
        public void run() {

            x--;
            handler.postDelayed(this, 100);

        }
    });
.

** 100은 각 빼기 (밀리 초)

사이에 얼마나 오래되었는지에 유의하십시오.

다른 팁

화면을 만지지 않으면 터치 이벤트가 없습니다.이벤트가 트리거가 필요합니다. 어쩌면 타이머가 도움이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top