質問

Java / Android Noobここでは、ontouchListenerを使用すると、変数xをx + 1に変更し、それが正常に動作している場合は、そのため:

    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は、各減算の間(Millisecs)の間の期間です

他のヒント

画面に触れていない場合は、タッチイベントはありません。イベントはトリガーを必要とします、おそらくタイマーが助けることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top