Java Android: ¡OntouchListener lanzamiento?
-
21-12-2019 - |
Pregunta
Java / Android Noob aquí, tengo un problema donde usar OntouchListener I cambia la variable x a x + 1 y eso funciona bien, pero cuando se libero, me gustaría que la X variable disminuya en el valor hasta que golpee cero, comoEntonces:
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
}
Ahora que funciona bien, mi problema viene cuando quiero que mi X continúe disminuyendo después de la liberación, pero como está bajo setontouchlistener, entonces no funciona. Tal vez algo como esto:
public boolean onTouchFalse(View v){
if(x>0){
x * 0.9
}
}
o incluso algo como
public boolean image.isOnScreen{
if(x>0){
x = x * 0.9
}
}
tl; DR: Estoy buscando algún tipo de oyente que pueda usar para depreciar mi x.
¿Hay un oyente o alguna clase que me estoy perdiendo?Gracias por todos y todos los Ayuda!
Solución
final Handler handler = new Handler();
image.post( new Runnable() {
@Override
public void run() {
x--;
handler.postDelayed(this, 100);
}
});
** Tenga en cuenta que los 100 es cuánto tiempo entre cada resta (en Millisecs)
Otros consejos
No hay eventos táctiles si no está tocando la pantalla.Los eventos necesitan un gatillo, tal vez un temporizador pudiera ayudar.