Вопрос

Java / Android Noob здесь, у меня есть проблема, имеющая проблему, где используя OnTouchListener, я меняю переменную x до x + 1, и это работает нормально, но когда я отпускаю, я хотел бы переменную 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

     }
.

Теперь, когда это работает нормально, моя проблема приходит, когда я хочу, чтобы мой X продолжал уменьшаться после выпуска, но поскольку он находится под 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