Cuando usamos Eclipse para hacer nuestras aplicaciones para Android, contamos con diferentes herramientas que nos pueden ser de bastante ayuda para ahorrar código y recursos del sistema. Por eso hoy te traemos 3 Views sencillos que pueden serte de ayuda para tus desarrollos sin mucha complicación; estos son, DigitalClock, AnalogClock y Chronometer.
AnalogClock
Empecemos con el recurso que más me gusta de los 3 que hoy te presentamos, elAnalogClock, cuyo recurso es sencillo, práctico y muy personalizable, solo depende de tu imaginación para crear un reloj análogo sin igual.
¿Qué necesitamos para hacer utilizar este recurso? Primero y como en la mayoría de las aplicaciones en Android, escribes dentro de un archivo XML el Layout que le de forma y orden a los componentes de tu desarrollo, asignando el ancho y alto del mismo y codificando las diferentes características que requieras; después creas en el mismo archivo XML el recurso AnalogClock más o menos similar a esto:
Si corres tu programa con estas pocas líneas tendrás listo un reloj análogo funcionando y perfectamente sincronizado con la hora del dispositivo en donde tengas corriendo tu aplicación, mostrándose de la siguiente manera:
Este reloj es muy simple, no tiene números y el color es algo que no tiene en absoluto, esto se debe a que tenemos en “obra gris” a nuestro reloj. Para poder personalizarlo y darle la forma que deseamos, en Android contamos con 4 parámetros que podemos parametrizar y le darán a nuestro reloj el aspecto que queremos: hand_minute, hand_hour, dial y backgroud.
Estos parámetros deben tener una imagen que representen la función que desempeñan en nuestro reloj análogo. La imagen que representa la propiedad hand_minute debe ser el de una manecilla de los minutos. La imagen de hand_hour debe representar la manecilla de las horas. La imagen de dial debe representar los números del reloj, ya sea tan solo de la hora o de los minutos, eso lo decide tu imaginación y tus necesidades. Y elbackground te ayudará a complementar la imagen de fondo de tu reloj, en mi caso probé colocarle una especie de carcasa del reloj.
Empecemos con el recurso que más me gusta de los 3 que hoy te presentamos, elAnalogClock, cuyo recurso es sencillo, práctico y muy personalizable, solo depende de tu imaginación para crear un reloj análogo sin igual.
¿Qué necesitamos para hacer utilizar este recurso? Primero y como en la mayoría de las aplicaciones en Android, escribes dentro de un archivo XML el Layout que le de forma y orden a los componentes de tu desarrollo, asignando el ancho y alto del mismo y codificando las diferentes características que requieras; después creas en el mismo archivo XML el recurso AnalogClock más o menos similar a esto:
Estos parámetros deben tener una imagen que representen la función que desempeñan en nuestro reloj análogo. La imagen que representa la propiedad hand_minute debe ser el de una manecilla de los minutos. La imagen de hand_hour debe representar la manecilla de las horas. La imagen de dial debe representar los números del reloj, ya sea tan solo de la hora o de los minutos, eso lo decide tu imaginación y tus necesidades. Y elbackground te ayudará a complementar la imagen de fondo de tu reloj, en mi caso probé colocarle una especie de carcasa del reloj.
Como haces para vincular las imágenes pertenecientes a cada propiedad del reloj análogo? En tu proyecto dentro de la carpeta res creas una carpeta nueva llamadadrawable y copias en esta las 4 imágenes correspondientes a cada propiedad del reloj análogo, con nombres diferenciados para que puedas después vincularlos en tu proyecto, similar a la siguiente forma:
Las imágenes que asigné a mi proyecto son las siguientes:
La manera de vincular estas imágenes a tu proyecto se realiza en el archivo XML que tengas asignado para mostrar tu reloj; puedes llamar a tus imágenes como desees, en mi caso las nombre de una manera que fuera de fácil recordación y la vinculación queda de la siguiente manera:
Lo segundo y muy importante es que las imágenes de las manecillas deben estar verticalmente y apuntando siempre apuntando hacia arriba, hacia las 12 en punto, debido a que Android toma como referencia inicial la posición que tiene tu imagen al guardarla en el proyecto y desde este punto calcula en donde debe posicionarla con respecto a la hora que debe representar. Si no haces esto la hora que muestre en tu reloj estará desfasada y corrida.
Como te habrás dado cuenta este View no tiene la propiedad de los segundos, creo que los desarrolladores en Google no vieron necesario colocarlo, porque ¿quién mira los segundos en un reloj de manecillas? Lo que no significa que no puedas hacerlo, tendrías que hacer una programación diferente, pero esto lo trataremos más adelante si así lo crees necesario. Ahora que ya sabes crear un reloj análogo, crees que puedes hacer uno parecido a estos 2:
Pero si quieres ver los segundos en tu reloj propio, lo podrás hacer fácilmente en el segundo View que hoy te traemos, el cual se llama DigitalClock. Este es más sencillo que el anterior, ya que tan solo con escribir unas pocas líneas tienes un digno reloj funcionando a las mil maravillas. Para crear tu reloj digital lo único que debes hacer es escribir en tu archivo XML y ordenado en tu Layout el siguiente código:
Nosotros quisimos darle un toque de nuestra querida página Androideity con unas letras orientales estilo samurái, así que para lograrlo asignamos las siguientes características a nuestro archivo XML:
En donde fondo_digital es una imagen PNG que previamente cargamos la carpetadrawable contenida en la carpeta res, las demás características ya se han visto en artículos previos aquí en la página, y si no los has visto, no puedes dejarlos pasar. Y el resultado corriendo en nuestro dispositivo Android es el siguiente:
Para terminar con nuestro post y que no se haga tan largo vamos a mostrarte cómo funciona el View que nos ofrece Android llamado Chronometer. Este recurso te puede llegar a ser muy útil en aplicaciones en las que debas medir intervalos de tiempo, por ejemplo cuando sales a hacer ejercicio y debes cronometrar un tiempo exacto para trotar, o quieres saber el tiempo que pasó un semáforo para informarle a la empresa de los movimientos en la vía; en fin, el uso del recurso lo da tus necesidades, aquí te ofrecemos las herramientas para que trabajes, tú decides como usarlas.
La herramienta de cronómetro varía un poco frente a las 2 que te acabamos de mostrar ya que debemos incluirle herramientas de activación y detención del conteo cuando lo queramos; pero lo que si tiene en común es la personalización de la misma. Puedes usar las mismas propiedades de tipo de fuente, color del texto, tamaño del texto y todas las demás que usamos en el reloj digital.
Vamos a crear un cronómetro básico y común. En nuestro archivo XML asignamos unLinearLayout principal con sus respectivas propiedades, así como el View Chronometer. Seguido creamos otro LinearLayout que contendrá los botones que comandaran las acciones del cronómetro, la propiedad orientation la dejamos en “horizontal” para que los botones proyecten la imagen de tener una relación en común; el archivo XML va quedando de la siguiente manera:
Para terminar con el archivo XML creamos 2 botones que manejan el estado del cronómetro; no significa que los botones sean los únicos elementos que puedan controlar el conteo del cronómetro, solo que es más fácil explicar la manera en que funciona este View. Los dejamos centrados y ordenados para que se vean de una forma estética, así que el resto de nuestro archivo XML incluyendo los botones quedaría de la siguiente manera:
Para que btn_enter realice los descrito, debemos entender la instrucción “setBase”, la cual configura al cronómetro para que tenga una referencia y sepa cuando empezar su conteo; si no referenciamos al cronómetro, este iniciará el conteo tan pronto iniciemos nuestra aplicación; esto es útil cuando quieras llevar el tiempo que dedicas a tu aplicación, por ejemplo cuando estás utilizando el servicio de llamadas en tu teléfono y quieres saber cuanto tiempo gastaste hablando. Pero lo que nosotros queremos es comandar nuestro cronómetro, así que lo configuramos de la siguiente manera:
“cronometro.setBase(SystemClock.elapsedRealtime());” con esto se puede iniciar el cronometro cuando lo deseemos.
Con el botón btn_stop haremos que el cronometro se detenga en un punto y quede listo para volver a ser utilizado desde cero.
Empezamos nuestro código en la respectiva clase con el importe de librerías, creación de variables, asignación del tipo de letra que este caso utilizamos la old_stamper y seguido la recuperación de Views:
En la siguiente parte de código creamos el evento en el cual será escuchado el botón llamado botonEnter con el cual se evalúa el String llamado “estado” que toma 3 opciones, inactivo, pausado e inactivo. Cuando es pulsado botonEnter y el cronómetro está en el estado “inactivo” arranca el cronometro desde cero (0) y pasa a estar a estado “activo”. Si el botón botonEnter de nuevo es pulsado y el cronómetro está en modo “activo” el cronómetro es detenido pero se guarda el valor que ha transcurrido y el cronómetro pasa a estado “pausado”. Si es de nuevo pulsado y se encuentra en estado “pausado”, el cronometro de nuevo empieza a funcionar desde el punto desde donde fue pausado y queda en estado “activo”. Veamos como es el código de lo explicado:
Por último asignamos al botón llamado botonStop, el código necesario para que detenga el conteo del cronómetro y quede en estado “inactivo”. Con lo que el final del código sería este:
Empezamos nuestro código en la respectiva clase con el importe de librerías, creación de variables, asignación del tipo de letra que este caso utilizamos la old_stamper y seguido la recuperación de Views:
No hay comentarios:
Publicar un comentario