Programación Android, Creación de Widgets II

Creación de widgets
Después de un tiempo excesivo de inactividad (lo lamentamos, pero entre cursos, viajes y trabajo ha sido imposible sentarse a escribir una nueva entrada), volvemos a la carga para terminar el tutorial que dejamos a medias sobre cómo crear widgets.

En la anterior entrada comenzamos con la creación de widgets, para que el sistema lo detectara como tal y pudieramos agregarlo a la pantalla principal del dispositivo. En esta ocasión vamos a retomar este ejemplo, y vamos a añadirle la posibilidad de interactuar con él. Lo que vamos a crear es un sencillo widget que nos va a permitir cambiar el estado del sonido del dispositivo, intercambiando entre el volumen que haya dejado el usuario en el dispositivo y ponerlo en silencio con vibración.

Creación de widget

En primer lugar, para poder hacer esto, vamos a modificar el xml del widget, cambiando el TextView que contiene por un ImageView que nos permitirá configurar un recurso que indique al usuario si el dispositivo está en silencio o no, y cambiarlo cada vez que el usuario pulse sobre nuestro widget, además le eliminaremos el shape que inicialmente configuramos:
Leer más…

Comenzando con Php

PHP

Php para principiantes

Hola, ¿Cómo están? Espero que muy bien, en esta categoría voy a ingresar tutoriales de programación en Php. Este es mi primer tutorial online que hago, así que espero que les guste y si llegan a tener alguna duda pueden dejar sus comentarios. Bueno, en este tutorial vamos a meternos en el mundo de PHP, vamos a ver cuestiones básicas del desarrollo, ejemplos simples, para que cualquier persona que sabe lo básico de otro lenguaje de programación o bien HTML pueda aprenderlo cómodamente.

Comenzando con PHP

Requisitos -

  1. Conocimientos básicos de Html

  2. Ganas de aprender :-)

Comencemos con un poco de historia y filosofía informática – 

Como bien todos sabemos en las ultimas décadas la Web a avanzado a pasos enormes. Pero, ¿Cómo esta formada una web? La web esta compuesta por etiquetas HTML ( HyperText Markup Language ) donde se pueden poner, imágenes, párrafos de textos, multimedia, etc, etc. Algo muy importante que deberías saber si estas leyendo este tutorial es que Html no puede generar por sí solo. Por lo que si queremos desarrollar una página web con una determinada lógica de negocio no va a ser posible

¿Qué es PHP? 

Leer más…

Desarrollo de juegos para Android: El Simio lúdico

gd-2d-images

No menos importante que el trabajo es la diversión, si bien los móviles son herramientas de trabajo también es cierto que son bien utilizados para matar alguna espera. Por tal razón ahora toca hablar del desarrollo de juegos para Android y otros, por lo que este post comenzara por ser un recopilatorio de frameworks y alternativas para echar a andar el próximo Flappy Bird.

Puedes ver algunas de las estadísticas más impactantes del mundo de los video juegos en móviles en este link

2D o 3D

Mobile Game 3D

Esta debe ser el primer gran reto a resolver, ¿porque mi juego debe ser en 2d o 3d? Lo primero que hay que tener en mente es la dinámica de juego que plantearemos,  luego debemos considerar la experiencia de juego, hablamos de un dispositivo móvil en el que los mandos son un tanto más limitados. Y por último la honestidad: Tenemos capacidad de modelar, animar y crear un juego en 3d.

Si deseas seguir la discusión o aportar puedes dejar tu comentario.
Leer más…

Programación Android, ListView & Adapter personalizado II

En la anterior entrada creamos un Adapter personalizado para mostrar una vista creada por nosotros en cada ítem del ListView, pero ya comentamos que tenía un problema de optimización.

Este problema consistía en que siempre estábamos creando una nueva vista por cada ítem que contenía la colección que queríamos mostrar en el ListView, por lo que si utilizamos una colección muy grande, creamos demasiadas vistas, lo que consumiría mucha memoria (algo sobre lo que prestar mucha atención en un smartphone).

En realidad esto no es del todo cierto, Android lo que hace es almacenar sólo 13 de estas vistas del ListView en la memoria. Sin embargo sí que estamos haciendo demasiadas llamadas a crear vistas en el anterior Adapter, problema que se arregla reutilizando las vistas, teniendo en cuenta que ya previamente las habíamos creado.

Leer más…

Programación Android, ListView & Adapter personalizado I

Ahora que hemos empezado a manejar adaptadores y listas con el Spinner, vamos a dar un paso más, utilizando el control ListView y gestionando su contenido con un Adapter personalizado, de manera que lo que visualicemos en cada celda de la lista esté diseñado por nosotros mismos.

Creando el ListView

En primer lugar debemos crear nuestro interfaz de usuario. Lógicamente debemos añadir un ListView, en el que mostraremos los datos que queramos, y en nuestro caso vamos a incorporar en la parte superior algunos TextView que indicarán el nª de la celda que ocupa el ítem seleccionado del ListView y el texto que contenga.

Quedaría así:

Layout ListView
Layout ListView

Leer más…

Programación Android, cómo usar un Spinner II

En la anterior entrada dimos los primeros pasos en el uso del Spinner en Android, añadiendo las opciones que queríamos que se incluyeran en él y quedamos a falta de ver cómo gestionar la opción elegida del Spinner.

Creando las descripciones

En primer lugar vamos a crear una nueva variable, que va a incluir las descripciones de los animales. Para ello vamos a usar un TreeMap, que contendrá como clave el nombre del animal, y como valor su descripción:

private TreeMap<String, String> descrip;

Y creamos un método que va a rellenar los datos de la variable:

public void rellenarDescripciones() {
	// Inicializamos la variable.
	descrip = new TreeMap<String, String>();

	// Rellenamos la variable con las descripciones.
	descrip.put(
		"Perro",
		"Mamífero carnívoro de la familia de los cánidos, doméstico, con cuatro patas, un olfato muy fino y de gran diversidad de tamaños, formas y pelajes, que sirve al ser humano como animal de compañía o para cazar.");
	descrip.put(
		"Gato",
		" Mamífero carnívoro doméstico, de la familia de los félidos, de patas cortas y uñas retráctiles, cabeza redonda, y pelo espeso y suave; suele tenerse como animal de compañía: el gato es un hábil cazador de ratones.");
	descrip.put(
		"Caballo",
		"Mamífero équido, macho, de cuerpo fuerte, orejas pequeñas, cola cubierta de largo pelo y patas terminadas en casco; es herbívoro, se domestica con facilidad y se suele usar para montar en él.");
	descrip.put(
		"Canario",
		"Pájaro de plumaje amarillo, verdoso o casi blanco, muy apreciado por su canto y que se suele criar como ave doméstica.");
	descrip.put(
			"Vaca",
			"Hembra del toro. De joven se denomina ternera, becerra, vaquilla o novilla. Su leche constituye un alimento completísimo y, después de la de burra, es la más parecida a la de la mujer.");
	descrip.put(
		"Cerdo",
		"Mamífero doméstico de cuerpo grueso, patas cortas, cabeza grande, orejas caídas, hocico chato y casi cilíndrico y cola en forma de hélice, que se cría para aprovechar su carne.");
}

Leer más…

Programación Android, cómo usar un Spinner I

Después de un par de semanas de inactividad, debido a que ha habido que finalizar 2 proyectos y apenas ha quedado tiempo libre, volvemos a la publicar una nueva entrada.

En esta ocasión vamos a intentar explicar el uso y comportamiento de un Spinner.

Un Spinner es un elemento que ofrece un desplegable en el que poder seleccionar una de múltiples opciones, en el que además se visualiza la opción seleccionada de entre las disponibles:

Spinner desplegado
Spinner desplegado

Leer más…

Programación Android, leer y escribir archivos en memoria interna. Lanzar alarmas

android-archivador

En entradas anteriores se ha visto cómo recoger y usar los recursos de nuestra aplicación, y en esta ocasión vamos a manejar archivos en memoria interna del dispositivo.

En el ejercicio siguiente haremos una aplicación con la que introduciremos 5 tiempos distintos, los guardaremos en un archivo de texto y posteriormente los iremos leyendo para lanzar la alarma pasado el tiempo indicado. Antes partiremos de un estado inicial, en el que todos los tiempos estén marcados a 5 minutos.

Continue reading “Programación Android, leer y escribir archivos en memoria interna. Lanzar alarmas”

Programación Android, clase CountDownTimerWithPause

Androids_medico

Bueno, hoy investigando nuevas cosas para añadir a un proyecto personal que estoy llevando a cabo me he encontrado con una utilidad muy básica, pero muy buena. En Android tenemos el problema de que la clase CountDownTimer no admite hacer pause/resume, por lo que tenemos que programarlo nosotros cada vez que llamamos al método cancel. Pues esto lo ha solucionado Andrew Gainer, creando una clase que se basa en el funcionamiento del CountDownTimer de android, pero sí implementa la posibilidad de pause/resume.

Os dejo la clase aquí para que podáis usarla también a vuestro antojo:
Leer más…

Programación Android, Recursos XML III (Shape)

android_resources

Esta será la tercera y última entrada sobre la definición de recursos XML. Como dijimos en la segunda parte, en esta ocasión vamos a definir el shape para el botón, e indicaremos cómo acceder a los recursos desde el código Java.

En primer lugar, definamos un shape para el botón. Para eso lo primero es crear un nuevo archivo XML, que se llame buttonshape.xml. Al crearlo no vamos a utilizar el tipo de recurso “value”, sino que le indicaremos que es un “Drawable”, y en las opciones que nos aparecerán en la parte inferior, definiremos que es un Shape:

Crear shape en proyecto android
Crear shape en proyecto android

Leer más…