0

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 的听众。

有没有听众或我错过了什么课程?感谢您的任何帮助!

4

2 回答 2

1
    final Handler handler = new Handler();


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

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

        }
    });

** 请注意,100 是每次减法之间的时间间隔(以毫秒为单位)

于 2014-06-04T00:45:12.410 回答
0

如果您不触摸屏幕,则没有触摸事件。事件需要触发器,也许计时器可以提供帮助。

于 2014-06-04T00:41:11.723 回答