Question

Java / Android noob ici, j'ai un problème où utilisez AOUTOUCHLISTENER, je modifie la variable x à x + 1 et qui fonctionne bien, mais lorsque je libère, je voudrais que la variable x diminue de la valeur jusqu'à ce qu'elle frappe zéro, commeDonc:

    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

     }

Maintenant cela fonctionne bien, mon problème vient quand je veux que mon X continue à diminuer après la libération, mais comme il est sous SetOnTouchlistener, alors cela ne fonctionne pas. Peut-être quelque chose comme ceci:

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

ou même quelque chose comme

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

TL; DR: Je cherche une sorte d'auditeur que je pourrais utiliser pour déprécier mon x.

Y a-t-il un auditeur ou une classe qui me manque?Merci pour toute aide!

Était-ce utile?

La solution

    final Handler handler = new Handler();


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

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

        }
    });

** Notez que le 100 est combien de temps entre chaque soustraction (en millisecs)

Autres conseils

Il n'y a pas d'événements tactiles si vous ne touchez pas l'écran.Les événements ont besoin d'un déclencheur, peut-être qu'une minuterie pourrait aider.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top