Professional Documents
Culture Documents
Contenido
Instalacin de un ambiente de desarrollo Java Estructura de una aplicacin Android Tcnicas de programacin
Consola de comandos Dibujando con el dedito Obtencin de geoposicin con el GPS Escaneo de cdigo de barras
Eclipse
App.apk
Manifest .xml
Inicio
Finger paint
GPS demo
Consola de comandos
Generalmente cuando se empieza a programar, los programas ms sencillos son los de consola (modo texto). Las aplicaciones Android no tiene un modo de consola (terminal) como tal, pero con los elementos bsicos es posible tener algo similar. Se plantea como ejemplo un pequeo interprete de comandos cuya salida tratar de parecerse a una consola de texto.
Diseo
console.axml LinearLayout Los comandos propuestos son: Class ConsoleActivity TextView OnCreate() OnClick() Print Cls Repeat N <str>
EditText
Button
setContentView
ConsoleActivity
Las actividades en el sistema son manejadas mediante un stack de actividades. Cuando una nueva actividad se inicia, se coloca en la cima del stack y se convierte en la actividad en ejecucin activa.
http://developer.android.com/reference/android/app/Activity.htm l
TextView
EditText
Button
Para navegar entre las diferentes partes de esta app, la idea es crear una actividad que se encargue de permitir al usuario seleccionar que parte del demo quiere acceder y direccionarlo hacia ella. Para ello es necesario:
Crear botones en la UI de la actividad de men Ligar los botones al evento OnClick (ver tcnica 3)
Demo v.0.1
Finger paint
En las tablets no hay ratn (mouse)!!! La interaccin con el dispositivo es mediante los dedos, por lo que hay que conocer como funciona y se controla dicha interaccin. El caso se enfoca a implementar una pequea aplicacin de dibujo, donde se cuente con una superficie que pueda mostrar trazos cuando se presione la pantalla.
Diseo
LinearLayout Class FingerPaintActivity OnCreate() View Class FingerPaintView OnDraw() OnTouchEvent() En este caso el elemento View no se obtendr del layout, sino que se definir dentro del cdigo de la actividad.
Una forma de hacer una actividad que usa grficos 2D, es crear una actividad y, en lugar de referenciar un layout, se referenca una instancia de una clase derivada de View. La subclase de View debe implementar el mtodo OnDraw(), donde se define el despliegue grfico.
El objeto Paint se encarga de establecer las caracteristicas del objeto grfico a desplegar. El objeto Canvas se encarga de desplegar los objetos grficos (objetos geomtricos, texto, paths, etc)
Tambien debe sobrecargarse el evento OnTouchEvent() donde se identifica el tipo de MotionEvent generado por el usuario (UP, DOWN,MOVE). El repintado se hace con una llamada al mtodo invalidate()
public class FingerPaintActivity extends Activity { float x, y; String accion="accion"; Path path= new Path(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FingerPaintView fpaintv= new FingerPaintView(this); setContentView(fpaintv); } class FingerPaintView extends View{ public FingerPaintView(Context context) { super(context); // } @Override protected void onDraw(Canvas canvas) { canvas.drawColor(Color.GRAY); Paint paint= new Paint(); paint.setAntiAlias(true); paint.setTextSize(15); canvas.drawText(accion, 10, 10, paint); canvas.drawText("x:"+x, 10, 30, paint); canvas.drawText("y:"+y, 10, 50, paint); paint.setStyle(Style.STROKE); paint.setStrokeWidth(6); paint.setColor(Color.BLUE); if (accion=="down") path.moveTo(x,y); if (accion=="move") path.lineTo(x,y); canvas.drawPath(path, paint); }
@Override public boolean onTouchEvent(MotionEvent event) { x= event.getX(); y= event.getY(); if (event.getAction()== MotionEvent.ACTION_DOWN){ accion="down"; } if (event.getAction()== MotionEvent.ACTION_MOVE){ accion="move"; } if (event.getAction()== MotionEvent.ACTION_UP) { accion="up"; } invalidate(); return true; } }
Mejoras propuestas:
Agregar paleta de colores Agregar gomas Limpiar pantalla Modificar caracteristicas del trazo Efectos Superponer el dibujo en una imagen (capas) Salvar la imagen
Demo GPS
Los nuevos dispositivos (telfonos y tabletas) cuentan con GPS, por lo que es til conocer su funcionamiento y manipulacin. El caso de estudio implementa la obtencin de la geoposicin del dispositivo. Importante:
por cuestiones de seguridad, la activacin del GPS se delega al usuario, por lo que no hay en las APIs manera de acceder a operaciones de encendido o apagado. El uso del GPS requiere agregar en el manifiesto, el permiso ACCESS_FINE_LOCATION La obtencin de coordenadas no es instantnea, pues el GPS debe detectar cierta cantidad de satlites para triangular su posicin. La ubicacin y el clima son factores.
Diseo
Activity LinearLayout TextView TextView LocationGPS
LocationListener
MyLocationListener
http://www.devx.com/wireless/Article/39239/1954 http://gitorious.org/android-maps-api
Comentarios
Organizar su cdigo Contemplar que con poco cdigo se obtienen resultados interesantes Para acceder a funcionalidad como el GPS, es necesario configurar el dispositivo para activar el perifrico y en algunos casos solicitar estos permisos en el manifiesto de la app.