Bueno gente, hoy creo que me ando luciendo escribiendo ya 2 temas en el mismo día, esta vez vamos a ver como sacar las coordenadas de nuestra pantalla de la aplicación ademas de indicar si estamos haciendo presión, moviéndonos o sin presión.
Para esta parte nos sera muy útil las siguientes librerías:
Cita: import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;
Vamos a declarar en nuestro main.xml los textview que vamos a utilizar.
1.- Nuestro clasico textview de "Hello word" o pueden cambiarla la verdad
2.- El texto donde va a ir la acción que se esta realizando.
3.- La posición o coordenada en X
4.- La posición o coordenada en Y
Creo que no es necesario que les diga como agregar los textview en el main.xml por que nadie a comentado nada al respecto.
Bueno ya tenemos listo nuestro Graphical Layout ahora solo falta agrega el código en nuestro .java
Aunque uno pensaría "no jodas te apuesto que es un buen de código" para sorpresa no es tanto comparado a otros
.
Primero declaramos nuestros textview que vamos a modificar o mejor dicho vamos a agregarle mas texto por cada vez que se modifique algo en el layout.
Cita: TextView textEvent, textX, textY;
Los llenamos con sus respectivos id para modificarlos.
Cita: LinearLayout MainLayout = (LinearLayout)findViewById(R.id.mainlayout);
textEvent = (TextView)findViewById(R.id.event);
textX = (TextView)findViewById(R.id.x);
textY = (TextView)findViewById(R.id.y);
Y lo que hace toda la magia de este asunto es la siguiente instrucción:
Cita: private View.OnTouchListener OnTouchListener
= new View.OnTouchListener(){
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
// TODO Auto-generated method stub
textX.setText("x: " + String.valueOf(motionEvent.getX()));
textY.setText("y: " + String.valueOf(motionEvent.getY()));
int action = motionEvent.getAction();
switch (action){
case MotionEvent.ACTION_DOWN:
textEvent.setText("ACTION_DOWN");
break;
case MotionEvent.ACTION_MOVE:
textEvent.setText("ACTION_MOVE");
break;
case MotionEvent.ACTION_UP:
textEvent.setText("ACTION_UP");
break;
case MotionEvent.ACTION_CANCEL:
textEvent.setText("ACTION_CANCEL");
break;
default:
textEvent.setText("Desconocida!");
}
return true;
}
};