Académique Documents
Professionnel Documents
Culture Documents
Presenta:
M.T.I. JORGE IVÁN BERMÚDEZ RODRÍGUEZ
Contenido:
Estructura de un proyecto Android Studio
Componentes de una aplicación Android
Desarrollando una aplicación Android sencilla
INTERFAZ DE USUARIO:
Layouts
Botones
Imágenes, etiquetas y cuadros de texto
Checkboxes y RadioButtons
Listas Desplegables
Listas
Audio en aplicaciones
Grids
Pestañas
NOTIFICACIONES EN ANDROID
Notificaciones Toast
Herramientas:
• Android Studio
• URL( http://developer.android.com/sdk/index.html )
Descargar Android Studio
Si tienes Windows descarga
Si tienes MacOS descarga
UNA VEZ INSTALADO ES NECESARIO INSTALAR LAS APIS NECESARIAS PARA
TENER EL CORRECTO FUNCIONAMIENTO DE ANDROID STUDIO
VERIFICAR QUE ESTAS APIS ESTEN INSTALADAS
Es una plataforma de código abierto. Esto
quiere decir, que cualquier desarrollador puede
crear y desarrollar aplicaciones escritas con
lenguaje C u otros lenguajes y compilarlas a
código nativo de ARM (API de Android).
Arquitectura:
El siguiente gráfico muestra la arquitectura de Android. Como se puede
ver está formada por cuatro capas. Una de las características más
importantes es que todas las capas están basadas en softwarelibre.
Incluye un conjunto de librerías en C/C++ usadas en varios componentes de Android.
Están compiladas en código nativo del procesador. Muchas de las librerías utilizan
proyectos de código abierto. Algunas de estas librerías son:
•SQLite: potente y ligero motor de bases de datos relacionales disponible para todas
las aplicaciones.
/res/ En esta carpeta se guardarán todos los recursos como imágenes, vídeos,
títulos, etc. Irán divididos de la siguiente manera:
/res/layout/ – En esta carpeta se guardan los xml que forman las pantallas.
/res/menú/ - En esta carpeta definiremos los menús de navegación.
View
Son objetos con los que se construye la interfaz gráfica, son los botones, textos, listas,
imágenes…
Service
Son componentes sin interfaz gráfica, se ejecutan en segundo plano y realizan
múltiples acciones.
Content Provider
Es la forma que tiene Android de compartir datos entre aplicaciones. Es una forma sencilla de
compartir datos sin la necesidad de dar de detalles sobre su almacenamiento.
Intent
Un intent es la forma en la que tiene Android de comunicarse entre los diferentes elementos de
una aplicación. Son los mensajes que son enviados entre las aplicaciones o entre los
componentes de una misma aplicación.
Broadcast Reciver
Este componente se encarga de detectar y reaccionar a los eventos generales como pueden
ser batería baja, entrada de llamada, Sms recibido… Es decir es el encargado de recibir
aquellos intent que son enviados a cualquier aplicación que esté “escuchando”
Widget
Elementos visuales que por regla general son interactivos con el usuario.
APP INVENTOR
Desarrollando mi primera App
Click
Aquí
ANDROID STUDIO
Vamos hacer nuestro primer programa
en Android y que mejor que el clásico
“Hola Mundo”, con esto nos vamos a
familiarizar un poco con eclipse y
como probar nuestras aplicaciones.
FrameLayout:
<EditText android:id="@+id/TxtDato1"
Esta propiedad nos va a permitir dar a android:layout_width="match_parent"
android:layout_height="match_parent"
los elementos contenidos en el layout android:inputType="text"
unas dimensiones proporcionales entre android:layout_weight="1" />
ellas. <EditText android:id="@+id/TxtDato2"
android:layout_width="match_parent"
Si incluimos en android:layout_height="match_parent"
android:inputType="text"
un LinearLayout vertical dos android:layout_weight="2" />
cuadros de texto (EditText) y a uno
</LinearLayout>
de ellos le establecemos
un layout_weight=”1″ y al otro
un layout_weight=”2″ conseguirem
os como efecto que toda la superficie
del layout quede ocupada por los dos
cuadros de texto y que además el
segundo sea el doble (relación entre
sus propiedades weight) de alto que
el primero.
Un TableLayout permite distribuir sus elementos
hijos de forma tabular, definiendo las filas y
columnas necesarias, y la posición de cada
componente dentro de la tabla.
<TableRow>
<TextView android:text="Celda 1.1" />
<TextView android:text="Celda 1.2" />
<TextView android:text="Celda 1.3" />
</TableRow>
<TableRow>
<TextView android:text="Celda 2.1" />
<TextView android:text="Celda 2.2" />
<TextView android:text="Celda 2.3" />
</TableRow>
<TableRow>
<TextView android:text="Celda 3.1"
android:layout_span="2" />
<TextView android:text="Celda 3.2" />
</TableRow>
</TableLayout>
RelativeLayout:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<EditText android:id="@+id/TxtNombre"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text" />
<Button android:id="@+id/BtnAceptar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/TxtNombre"
android:layout_alignParentRight="true" />
</RelativeLayout>
Botones:
En este tema nos vamos a centrar en los diferentes tipos de botones y cómo
podemos personalizarlos. El SDK de Android nos proporciona tres tipos de
botones: el clásico (Button), el de tipo on/off (ToggleButton), y el que
puede contener una imagen (ImageButton). En la imagen siguiente vemos el
aspecto por defecto de estos tres controles.
<Button android:id="@+id/BtnBoton1"
android:text="@string/pulsame"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Control ToggleButton
<ToggleButton
android:id="@+id/BtnBoton2"
android:textOn="@string/on"
android:textOff="@string/off"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Control ImageButton
En un control de tipo ImageButton podremos definir una imagen a mostrar en vez de un texto,
para lo que deberemos asignar la propiedad android:src. Normalmente asignaremos esta
propiedad con el descriptor de algún recurso que hayamos incluido en la carpeta /res/drawable.
Así, por ejemplo, en nuestro caso hemos incluido una imagen llamada “ok.png” por lo que
haremos referencia al recurso “@drawable/ok“.
<ImageButton android:id="@+id/BtnBoton3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/icono_ok"
android:src="@drawable/ok" />
Por ejemplo, si quisiéramos añadir un icono a la
izquierda del texto de un botón utilizaríamos la
propiedad android:drawableLeft indicando como valor el
descriptor (ID) de la imagen que queremos mostrar:
<Button android:id="@+id/BtnBoton5"
android:text="@string/pulsame"
android:drawableLeft="@drawable/ok"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Eventos de un botón
Aunque estos controles pueden lanzar muchos otros eventos, el más común de
todos ellos y el que querremos capturar en la mayoría de las ocasiones es el
evento onClick, que se lanza cada vez que el usuario pulsa el botón. Para
definir la lógica de este evento tendremos que implementarla definiendo un
nuevo objeto View.OnClickListener() y asociándolo al botón mediante el
método setOnClickListener(). La forma más habitual de hacer esto es la
siguiente:
btnBoton1 = (Button)findViewById(R.id.BtnBoton1);
btnBoton1.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0)
{
lblMensaje.setText("Botón 1 pulsado!");
}
});
En el caso de un botón de tipo ToggleButton suele ser de
utilidad conocer en qué estado ha quedado el botón tras ser
pulsado, para lo que podemos utilizar su método isChecked().
En el siguiente ejemplo se comprueba el estado del botón tras
ser pulsado y se realizan acciones distintas según el resultado.
btnBoton2 = (ToggleButton)findViewById(R.id.BtnBoton2);
btnBoton2.setOnClickListener(new View.OnClickListener()
{
public void onClick(View arg0)
{
if(btnBoton2.isChecked())
lblMensaje.setText("Botón 2: ON");
else
lblMensaje.setText("Botón 2: OFF");
}
});
Para cambiar la forma de un botón podríamos simplemente asignar una
imagen a la propiedadandroid:background, pero esta solución no nos
serviría de mucho porque siempre se mostraría la misma imagen incluso
con el botón pulsado, dando poca sensación de elemento “clickable“.
<item android:state_checked="false"
android:drawable="@drawable/toggle_off" />
<item android:state_checked="true"
android:drawable="@drawable/toggle_on" />
</selector>
Este selector lo guardamos por ejemplo en un fichero llamado
toggle_style.xml y lo colocamos como un recurso más en nuestra
carpeta de recursos /res/drawable.
<ToggleButton android:id="@+id/BtnBoton4"
android:textOn="@string/on"
android:textOff="@string/off"
android:padding="10dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/toggle_style"/>
En la siguiente imagen vemos el aspecto por defecto de
un ToggleButton (columna izquierda) y cómo ha quedado
nuestro ToggleButton personalizado (columna derecha).
En las imágenes siguientes se muestra la aplicación de ejemplo
desarrollada, donde se puede comprobar el aspecto de cada uno
de los tipos de botón comentados para las versiones de Android 2.x
y 4.x
Uso de textos e imágenes
Crear nuevo proyecto