Los smartphone al no tener los típicos botones de los celulares, su pantalla es sensible al movimiento, esto se llama «touchscreen» y claro, este evento esta disponible para su uso en la programación. Los eventos touch, pueden ser simples (un solo dedo) o multiples (varios dedos), su implementación no es complicada y es justamente lo que haremos en este tutorial, crearemos una aplicación que haga uso del evento touch simple y que muestre en pantalla las coordenadas XY que se realiza al mover el dedo sobre la pantalla.
Herramientas necesarias
– Eclipse indigo con android
Nivel: Android novato, java intermedio
La Aplicación
1. Crea un proyecto nuevo Android Application Project llamado «Touch Me» 🙂
Activity: Blank Activity
Activity Name: TouchActivity
Layout Name: activity_touch
2. Utilizaremos el textView (Hello World!) que se crea por defecto. Seleccionamos, y re nombraremos su ID, clic derecho -> Assign ID… por ID «strXY»
Modificamos también el tamaño que ocupa el textView en la pantalla, para realizar esto, teniendo aún seleccionado el textView:
clic derecho -> Layout Width -> Match Parent
clic derecho -> Layout Height -> Match Parent
Match Parent, hace que el control, en este caso un textView tome las dimensiones de su contenedor
3. Abrimos el archivo TouchActivity.java que se encuentra en la carpeta SRC, el código que tenemos es:
package com.tutorial.touchme; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class TouchActivity extends Activity { //code here @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_touch); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.touch, menu); //code here return true; } }
Para implementar los eventos Touch, se hace uso de la interface onTouchListener que tiene como único método onTouch:
onTouch( View v, MotionEvent event )
donde View es el elemento que se envía y el segundo es una instancia de la clase Motion Event .
Clase Motion Event
– MotionEvent.getX(): Coordenada X
– MotionEvent.getY(): Coordenada Y
Las coordenadas se miden en pixeles y el punto (0,0) se encuentra en la esquina superior izquierda del view
– MotionEvent.getAction(), retorna el tipo de evento que se produce, los valores pueden ser :
MotionEvent.ACTION_DOWN, se produce cuando el dedo toca la pantalla
MotionEvent.ACTION_MOVE, se produce cuando el dedo se mueve en la pantalla
MotionEvent.ACTION_CANCEL, se produce cuando el evento es cancelado
MotionEvent.ACTION_UP, cuando el dedo deja de tocar la pantalla
4. Dicho todo esto implementamos el código para el evento Touch move, quedando nuestra clase TouchActivity de la siguiente forma:
package com.tutorial.touchme; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.TextView; public class TouchActivity extends Activity { StringBuilder stringBuilder = new StringBuilder(); TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_touch); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.touch, menu); //new code this.textView = (TextView) findViewById( R.id.strXY ); this.textView.setText("X: ,Y: ");//texto inicial //evento Touch this.textView.setOnTouchListener( new OnTouchListener() { @Override public boolean onTouch( View arg0, MotionEvent arg1 ) { stringBuilder.setLength(0); //si la acción que se recibe es de movimiento if( arg1.getAction() == MotionEvent.ACTION_MOVE ) { stringBuilder.append("Moviendo, X:" + arg1.getX() + ", Y:" + arg1.getY() ); } else { stringBuilder.append( "Detenido, X:" + arg1.getX() + ", Y:" + arg1.getY() ); } //Se muestra en pantalla textView.setText( stringBuilder.toString() ); return true; } }); //end return true; } }
Ejecutamos la aplicación
Proyecto android eclipse
bye 🙂
En ocasiones los administradores de sitios web experimentan problemas de lentitud en su carga o en el peor de los casos[...]
¿Qué es SCRUM? SCRUM es un modelo de referencia que define un conjunto de prácticas y roles, y que puede tomarse como pu[...]
Cuando tenemos dominio web pero aun no tenemos el contenido listo es común colocar en su lugar una simple web de aviso q[...]
Guardar un reporte PDF creado en iReport no es tan diferente de solo visualizarlo en pantalla. En este ejemplo se hace u[...]
Un TextView autocompletado nos facilita el ingreso de información en aplicaciones móviles ya que te muestra posibles opc[...]
Utilizando pygame para hacer gráficos en python, se muestra a continuación un sencillo ejemplo de cómo utilizar esta lib[...]