Diferencia entre revisiones de «Usuario:ManuelRomero/PrimeraAplicación»

De WikiEducator
Saltar a: navegación, buscar
 
(13 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
{{:Usuario:ManuelRomero/Android/nav}}
+
{{:Usuario:ManuelRomero/Android/PrimerContacto/nav}}
<br>  
+
<br>
 +
{{#widget:Slides}}
 +
{{MiTitulo| Primero aplicacion en android}}
  
===Actividades, fragmentos e Intens===
+
<div class="slides layout-regular template-default">
 +
<div class="slide">
 +
===Crear la primera aplicacion ===
 +
*Creamos la aplicación '''''hola curso'''''
 +
*En el menú de eclipse seleccionamos
 +
'''''New ==> Android Application Project'''''
 +
*Posteriormente damos valores a las direntes opciones que nos pide según vemos en las siguientes transparencias
 +
</div>
 +
<div class="slide">
 +
===Configurando nuevo proyecto===
 +
*Del menú de eclipse seleccionamos
 +
[[Imagen:NuevoProyecto.png]]
 +
*Decimos que es un proyecto de android
 +
[[Imagen:NuevoProyecto2.png]]
 +
*Y nos aparecer una ventana que tenemos que configurar
 +
[[Imagen:NuevoProyecto3.png]]
 +
*En ella nos pide
 +
#Nombre de la aplicación
 +
#Nombre del proyecto
 +
#Nombre del paquete
 +
#Seleccionar el Build SDK
 +
#Seleccionar el Minimo SDK requerido
 +
#Y cliclear una serie de opciones como vemos en la imagen anterior
 +
*A continuación debemos especificar el icono de la aplicación
 +
*Podemos configurar varias opciones (imagen, texto, icono de una lista que me ofrecen)
 +
*configurar color Poner o no fondo , ...
 +
[[[Imagen:NuevoProyecto5.png]]
 +
*Y posteriormente crear la actividad
 +
[[Imagen:NuevoProyecto6.png]]
 
<br/>
 
<br/>
{{Definicion|'''''Actividad''''' es una ventana que contiene la interfaz de usuario de una aplicacion}}
 
*Una aplicación puede tener una o más actividades
 
*El objetivo de una actividad es interactuar con el usuario
 
*Una actividad tiene vida propia cumpliendo un ciclo de vida
 
#toda actividad deriva de la clase '''''Activity'''''
 
===Ciclo de vida de una actividad===
 
#Creacion de la actividad
 
onCreate()
 
#Actividad visible
 
onStart()
 
#Actividad interactuando con el usuario
 
onResume()
 
#Actividad se detiene y otra  se reanuda
 
onPause()
 
#Actividad ya no es visible para el usuario
 
onStop()
 
#Actividad se destruyeya no es visible para el usuario
 
onDestroy()
 
#Actividad detenida se reanuda
 
onRestart()
 
[[Imagen:CicloVidaActividad.png]]
 
===Código de ejemplo===
 
#Creamos un nuevo proyecto llamado Actividad1
 
#Aceptamos por defecto las opciones
 
#Y vamos al fuente (src... MainActivity.java)
 
El sistema nos ha creado el siguiente contendio
 
<Source lang=java>
 
package com.example.ciclovidaactividad;
 
  
import android.os.Bundle;
+
===Estructura de carpetas===
import android.app.Activity;
+
[[Imagen:CarpetasAndroid.png]]
import android.view.Menu;
+
===Principales carpetas==
 +
;src
 +
:Contiene los archivos fuentes .java
 +
:El fichero ya aparece con algo de código escrito para poderse lanzar la aplicación
 +
;gen
 +
:Contiene el archivo R.java generado por el entorno
 +
*Hace referencia a todos los recursos encontrados en el proyecto
 +
*Este fichero NO SE DEBE MODIFICAR lo genera el sistema automáticamente
 +
;Android 4.1.2
 +
:Este eleemnto contiene una archivo android.jar
 +
:En el tenemos todas la librerías necesarias para una aplicación Android
 +
;assets
 +
:Contiene el resto de archivos que no son específicos de otras carpetas
 +
:HTML, archivos de texto, bases de datos, etc, ...
 +
;bin
 +
:Contiene los archivos creados por ADT durante el proceso de creación
 +
:El archivo apk ''android package'' es un binario
 +
;res
 +
:contiene los recursos utilizados en la aplicación
 +
:También contien otras carpetas como
 +
::'''''drawable-<resolution>'''''
 +
::'''''layout'''''
 +
::'''''values'''''
 +
===Algunos ficheros importantes===
 +
;AndroidManifest.xml
 +
:Es un archivo importante que posteriormente analizaremos con más detalle
 +
:Se especifican las activity de la aplicación, permisos, y datos de la aplicacion y otras características y recursos usados
 +
:En nuestro ejemplo sin añadir nada nos ha generado
 +
<source lang=xml>
  
public class MainActivity extends Activity {
+
</source>
 +
;main.xml
 +
:Define la interfaz de usuario para su actividad
  
    @Override
+
===Ficheros importantes===
    public void onCreate(Bundle savedInstanceState) {
+
        super.onCreate(savedInstanceState);
+
        setContentView(R.layout.activity_main);
+
    }
+
  
    @Override
+
===Ejecutar===
    public boolean onCreateOptionsMenu(Menu menu) {
+
*Para ejecutar damos al botón correspondientes
        getMenuInflater().inflate(R.menu.activity_main, menu);
+
[[Imagen:ejecutarAndoroid.png]]
        return true;
+
*Entonce debemos esperar que se abra el emulador
    }
+
*Una vez iniciado lo desbloqueamos con el ratón
}
+
*Y podremos ver nuestra aplicación funcionando
*La clase de actividad carga su componente de interfaz  de usuario utilizanndo '''''res/layout/activity_main.xml'''''
+
===Tocando main.xml===
*Lo podemos ver en modo gráfico y el contenido del fichero
+
<source lang=xml>
[[image:OpcionesLayout.png]]
+
<Source lang=java>
+
 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 
     xmlns:tools="http://schemas.android.com/tools"
 
     xmlns:tools="http://schemas.android.com/tools"
Línea 67: Línea 93:
 
         android:text="@string/hello_world"
 
         android:text="@string/hello_world"
 
         tools:context=".MainActivity" />
 
         tools:context=".MainActivity" />
 
+
</RelativeLayout>
</RelativeLayout>
+
*Ahora debemos cargar la actividad en el fichero '''''AndoridManifest.xml'''''
+
*Si editamos el fichero vemos que ya está cargado
+
*Existen asistentes para hacer las cosas de manera manual y no tocar el fuente xml
+
[[image:OpcionesManifest.png]]
+
 
+
 
</source>
 
</source>
 +
*Podemos cambiar la etiqueta y añadirla a '''''string.xml'''''
 +
*Vemos como tenemos una caja de texto
 +
*El texto cuyo contenido viene con la etiqueta hello_world que tenemos en string.xml
 +
*Esto es muy recomendable sobre todo para poder traducir nuestra aplicación a otras lenguas
 +
*Analicemos el fichero string.xml
 +
<source lang=xml>
 +
<resources>
 +
    <string name="app_name">HolaClase1</string>
 +
    <string name="hello_world">Hello world!</string>
 +
    <string name="menu_settings">Settings</string>
 +
    <string name="title_activity_main">Saludar a todos!!!!</string>
 +
</resources>
 +
</source>
 +
*Añadamos un botón a nuestra interfaz
 +
<source lang=xml>
 +
    <Button
 +
        android:layout_width="fill_parent"
 +
        android:layout_height="wrap_content"
 +
        android:text="Botón haz click" />
  
 
</source>
 
</source>
<Source lang=java>
+
===Hagamos que no ocupe toda la pantalla===
package com.example.activity101;
+
*Vamos a nuestro fichero '''manifest'''
 +
*Para ello habría que aplicar un tema de diáloga a la actividad
 +
Referencia http://developer.android.com/guide/topics/ui/themes.html
 +
*añadimos el atributo theme en la etiqueta de application dentro de AndroidManifest.xml
 +
*En el manifest
 +
<source lang=xml>
 +
  android:theme="@style/AppDialogo" >
 +
</source>
 +
*En el fichero style.xml hemos añadido una línea
 +
<source lang=xml>
 +
<resources>
 +
    <style name="AppTheme" parent="android:Theme.Light" />
 +
    <style name="AppDialogo" parent="android:Theme.Dialog" />
 +
</resources>
 +
</source>
 +
 
 +
===Ocultar el título en la actividad ===
 +
*Para ello hay que utilizar el método
 +
requestWindowFeature()
 +
*Le pasaremos la constante
 +
Window.FEATURE_NO_TITLE
 +
*Todo ello en el fichero principal de java
 +
<source lang=java>
 +
package com.example.holaclase1;
  
 
import android.os.Bundle;
 
import android.os.Bundle;
 +
import android.view.Window;
 
import android.app.Activity;
 
import android.app.Activity;
import android.view.Menu;
+
 
import android.util.Log;
+
  
 
public class MainActivity extends Activity {
 
public class MainActivity extends Activity {
  
String tag="Ciclo de vida";
 
 
     @Override
 
     @Override
 
     public void onCreate(Bundle savedInstanceState) {
 
     public void onCreate(Bundle savedInstanceState) {
 
         super.onCreate(savedInstanceState);
 
         super.onCreate(savedInstanceState);
 
         setContentView(R.layout.activity_main);
 
         setContentView(R.layout.activity_main);
         Log.d(tag,"Dentro del evento onCreate()");
+
         requestWindowFeature(Window.FEATURE_NO_TITLE);
 
     }
 
     }
 +
}
  
    @Override
+
</source>
    public boolean onCreateOptionsMenu(Menu menu) {
+
        getMenuInflater().inflate(R.menu.activity_main, menu);
+
        return true;
+
    }
+
    @Override
+
    public void onStart(){
+
    super.onStart();
+
    Log.d(tag,"Dentro del evento onStart()");
+
   
+
    }
+
    @Override
+
    public void onRestart(){
+
    super.onRestart();
+
    Log.d(tag,"Dentro del evento onReset()");
+
    }
+
    @Override
+
    public void onResume(){
+
    super.onResume();
+
    Log.d(tag,"Dentro del evento onResume()");
+
    }
+
    @Override
+
    public void onPause(){
+
    super.onPause();
+
    Log.d(tag,"Dentro del evento onPause()");
+
    }   
+
 
+
    @Override
+
    public void onStop(){
+
    super.onStop();
+
    Log.d(tag,"Dentro del evento onStop()");
+
    }   
+
    @Override
+
    public void onDestroy(){
+
    super.onDestroy();
+
    Log.d(tag,"Dentro del evento onDestroy()");
+
    }   
+
 
+
}
+
 
+
</Source>
+

Última revisión de 10:00 22 may 2013




Crear la primera aplicacion

  • Creamos la aplicación hola curso
  • En el menú de eclipse seleccionamos
New ==> Android Application Project
  • Posteriormente damos valores a las direntes opciones que nos pide según vemos en las siguientes transparencias

Configurando nuevo proyecto

  • Del menú de eclipse seleccionamos

NuevoProyecto.png

  • Decimos que es un proyecto de android

NuevoProyecto2.png

  • Y nos aparecer una ventana que tenemos que configurar

NuevoProyecto3.png

  • En ella nos pide
  1. Nombre de la aplicación
  2. Nombre del proyecto
  3. Nombre del paquete
  4. Seleccionar el Build SDK
  5. Seleccionar el Minimo SDK requerido
  6. Y cliclear una serie de opciones como vemos en la imagen anterior
  • A continuación debemos especificar el icono de la aplicación
  • Podemos configurar varias opciones (imagen, texto, icono de una lista que me ofrecen)
  • configurar color Poner o no fondo , ...

[[[Imagen:NuevoProyecto5.png]]

  • Y posteriormente crear la actividad

NuevoProyecto6.png

Estructura de carpetas

CarpetasAndroid.png

=Principales carpetas

src
Contiene los archivos fuentes .java
El fichero ya aparece con algo de código escrito para poderse lanzar la aplicación
gen
Contiene el archivo R.java generado por el entorno
  • Hace referencia a todos los recursos encontrados en el proyecto
  • Este fichero NO SE DEBE MODIFICAR lo genera el sistema automáticamente
Android 4.1.2
Este eleemnto contiene una archivo android.jar
En el tenemos todas la librerías necesarias para una aplicación Android
assets
Contiene el resto de archivos que no son específicos de otras carpetas
HTML, archivos de texto, bases de datos, etc, ...
bin
Contiene los archivos creados por ADT durante el proceso de creación
El archivo apk android package es un binario
res
contiene los recursos utilizados en la aplicación
También contien otras carpetas como
drawable-<resolution>
layout
values

Algunos ficheros importantes

AndroidManifest.xml
Es un archivo importante que posteriormente analizaremos con más detalle
Se especifican las activity de la aplicación, permisos, y datos de la aplicacion y otras características y recursos usados
En nuestro ejemplo sin añadir nada nos ha generado
 
main.xml
Define la interfaz de usuario para su actividad

Ficheros importantes

Ejecutar

  • Para ejecutar damos al botón correspondientes

EjecutarAndoroid.png

  • Entonce debemos esperar que se abra el emulador
  • Una vez iniciado lo desbloqueamos con el ratón
  • Y podremos ver nuestra aplicación funcionando

Tocando main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/hello_world"
        tools:context=".MainActivity" />
 </RelativeLayout>
  • Podemos cambiar la etiqueta y añadirla a string.xml
  • Vemos como tenemos una caja de texto
  • El texto cuyo contenido viene con la etiqueta hello_world que tenemos en string.xml
  • Esto es muy recomendable sobre todo para poder traducir nuestra aplicación a otras lenguas
  • Analicemos el fichero string.xml
<resources>
    <string name="app_name">HolaClase1</string>
    <string name="hello_world">Hello world!</string>
    <string name="menu_settings">Settings</string>
    <string name="title_activity_main">Saludar a todos!!!!</string>
</resources>
  • Añadamos un botón a nuestra interfaz
    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Botón haz click" />

Hagamos que no ocupe toda la pantalla

  • Vamos a nuestro fichero manifest
  • Para ello habría que aplicar un tema de diáloga a la actividad
Referencia http://developer.android.com/guide/topics/ui/themes.html
  • añadimos el atributo theme en la etiqueta de application dentro de AndroidManifest.xml
  • En el manifest
  android:theme="@style/AppDialogo" >
  • En el fichero style.xml hemos añadido una línea
<resources>
    <style name="AppTheme" parent="android:Theme.Light" />
    <style name="AppDialogo" parent="android:Theme.Dialog" />
</resources>

Ocultar el título en la actividad

  • Para ello hay que utilizar el método
requestWindowFeature()
  • Le pasaremos la constante
Window.FEATURE_NO_TITLE
  • Todo ello en el fichero principal de java
package com.example.holaclase1;
 
import android.os.Bundle;
import android.view.Window;
import android.app.Activity;
 
 
public class MainActivity extends Activity {
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
    }
 }