Java Android:Ontouchlistener发布?
-
21-12-2019 - |
题
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继续在发布后继续减少时,我的问题出现了,但由于它在STREDOROUCHLISTENER下,它不起作用。 也许这样的东西:
public boolean onTouchFalse(View v){
if(x>0){
x * 0.9
}
}
.
甚至类似于
public boolean image.isOnScreen{
if(x>0){
x = x * 0.9
}
}
.
tl;博士:我正在寻找一些我可以用来贬低我的x的倾听者。
是有侦听器还是我错过了一些课程?感谢任何和所有帮助!
解决方案
final Handler handler = new Handler();
image.post( new Runnable() {
@Override
public void run() {
x--;
handler.postDelayed(this, 100);
}
});
.
**注意,100是每次减法(以毫秒为单位)之间的长度
其他提示
如果您没有触摸屏幕,则没有触摸事件。事件需要一个触发器,也许计时器可以提供帮助。
不隶属于 StackOverflow