Bienvenidos sean a este post, hoy veremos como agregar uno de los recursos en nuestro juego. En este caso vamos a agregar un simple recurso para poder ver como crear el recurso de Acerca De de nuestra aplicacion, comencemos ahora mismo.
Abramos la app creada en este post, tendremos los siguiente recursos

android28

Primero vamos a crear un nuevo recurso, en este caso haremos un click con el boton derecho sobre el recurso layout y elegiremos New -> Layout resource file como se ve en la siguiente imagen

android29

Una vez seleccionado aparecera el siguiente cuadro

android30

En este caso asignaremos al campo File Name el valor de acercade y en Root element le asignaremos el valor de LinearLayout, despues dejan todo como se ve en la imagen y pulsen Ok para cerrar el cuadro y generar el archivo acercade.xml, una vez hecho debera quedar como la siguiente imagen

android31

Ahora lo unico que nos falta es modificar el archivo generado y agregar un nuevo elemento del tipo TextView. Abrimos nuestro archivo, en la solapa Design buscamos el item del tipo TextView, lo seleccionamos y presionamos Enter para agregarlo, una vez realizado debera quedar de la siguiente forma

android32

Ahora solamente nos resta hacer una modificacion para agregarle el texto, para esto pasaremos a la solapa Text y podremos ver el siguiente codigo fuente:

< ?xml version="1.0" encoding="utf-8"? >
< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical" android:layout_width="match_parent"
     android:layout_height="match_parent" >

    < TextView
         android:id="@+id/textView2"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="TextView" / >
< /LinearLayout >

Lo modificaremos por el siguiente codigo:

< ?xml version="1.0" encoding="utf-8"? >
< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="vertical" android:layout_width="match_parent"
     android:layout_height="match_parent" >

    < TextView
         android:id="@+id/textView2"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="Este es un texto de ejemplo para nuestra
              aplicacion creada para Android, espero sepan disfrutarla" / >
< /LinearLayout >

Con esto terminamos nuestro recurso para mostrar el mensaje de Acerca De para nuestra app, nuestro siguiente paso sera modificar el archivo strings.xml para agregar el titulo para el nuevo recurso, el codigo actual de nuestro archivo es el siguiente:

< resources >
    < string name="app_name" >Asteroides< /string >
    < string name="tituloJuego" >Asteroides< /string >
    < string name="botonJugar" >Jugar< /string >
    < string name="botonConf" >Configurar< /string >
    < string name="botonAcerca" >Acerca de< /string >
    < string name="botonSalir" >Salir< /string >
< /resources >

Y lo modificaremos por este:

< resources >
    < string name="app_name" >Asteroides< /string >
    < string name="tituloJuego" >Asteroides< /string >
    < string name="botonJugar" >Jugar< /string >
    < string name="botonConf" >Configurar< /string >
    < string name="botonAcerca" >Acerca de< /string >
    < string name="botonSalir" >Salir< /string >
    < string name="tituloAcerca" >Acerca De...< /string >
< /resources >

Esto nos servira para cuando debamos declarar nuestra actividad pero eso lo veremos mas adelante, el siguiente paso sera generar la clase java para mostrar este mensaje. Primero vamos a los contenedores de las clases Java y hacemos click con el boton derecho y seleccionamos New -> Java class como se ve en la siguiente imagen

android33

Una vez seleccionado nos aparecera el siguiente cuadro

android34

Aca debemos completar el campo Name con el valor AcercaDe y dejan el resto como se ve en la imagen, pulsamos Ok se cerrara el cuadro y se generara la clase AcercaDe.java el cual sera nuestra nueva clase. Veamos el codigo fuente actual:

package com.tinchicus.asteroides;

public class AcercaDe {
}

Ahora pasaremos a modificarlo con el siguiente:

package com.tinchicus.asteroides;

import android.app.Activity;
import android.os.Bundle;

public class AcercaDe extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.acercade);
    }
}

En este codigo simplemente crearemos un evento que al ser llamada esta clase generara una vista en base al contenido en el archivo acercade.xml. Nuestro siguiente paso sera declarar nuestra actividad para poder implementarla, para eso debemos abrir el archivo AndroidManifest.xml ubicado en manifests/AndroidManifest.xml y modificarlo, veamos su codigo actual:

< ?xml version="1.0" encoding="utf-8"? >
< manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.tinchicus.asteroides" >

    < application
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
         android:label="@string/app_name"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
         android:theme="@style/AppTheme" >
        < activity android:name=".MainActivity" >
            < intent-filter >
                < action android:name="android.intent.action.MAIN" / >

                < category
                    android:name="android.intent.category.LAUNCHER" / >
            < /intent-filter >
        < /activity >
    < /application >

< /manifest >

Esta sera la modificacion de nuestro codigo:

< ?xml version="1.0" encoding="utf-8"? >
< manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.tinchicus.asteroides" >

    < application
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
         android:label="@string/app_name"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
         android:theme="@style/AppTheme" >
        < activity android:name=".MainActivity" >
            < intent-filter >
                < action android:name="android.intent.action.MAIN" / >

                < category
                      android:name="android.intent.category.LAUNCHER" / >
            < /intent-filter >
        < /activity >
        < activity android:name=".AcercaDe"
             android:label="@string/tituloAcerca"
             android:theme="@android:style/Theme.DeviceDefault.Dialog" / >
    </ application >
< /manifest >

Con esta declaracion hecha solo nos resta crear el metodo para poder llamar a esta actividad y modificar el elemento invocador de esta actividad para finalmente probar nuestra app pero primero pasemos a modificar la clase MainActivity, veamos el codigo actual de la misma:

package com.tinchicus.asteroides;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

Y le agregaremos el siguiente metodo:

package com.tinchicus.asteroides;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void lanzarAcercaDe(View view){
        Intent i = new Intent(this, AcercaDe.class);
        startActivity(i);
    }
}

Agregamos el metodo llamado lanzarAcercaDe() para poder iniciar una nueva actividad relacionada con la clase AcercaDe, en este post hablo sobre las actividades mas a fondo, ahora solo nos resta crear el evento para disparar nuestra nueva actividad. Debemos ir al archivo activity_main.xml y modificar el boton relacionado a esta accion, primero veamos el codigo actual de este archivo:

< ?xml version="1.0" encoding="utf-8"? >
< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
     android:gravity="center"
     android:padding="30dp"
     tools:context=".MainActivity" >

    < TextView
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/tituloJuego"
         android:gravity="center"
         android:layout_marginBottom="20dp"
         android:textSize="25sp"
         / >

    < Button
         android:id="@+id/botJugar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/botonJugar"
         / >

    < Button
         android:id="@+id/botConf"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/botonConf"
         / >

    < Button
         android:id="@+id/botAcerca"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/botonAcerca"
         / >

    < Button
         android:id="@+id/botSalir"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/botonSalir"
         / >

< /LinearLayout >

Ahora veamos el codigo modificado:

< ?xml version="1.0" encoding="utf-8"? >
< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
     android:gravity="center"
     android:padding="30dp"
     tools:context=".MainActivity" >

    < TextView
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/tituloJuego"
         android:gravity="center"
         android:layout_marginBottom="20dp"
         android:textSize="25sp"
         / >

    < Button
         android:id="@+id/botJugar"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/botonJugar"
         / >

    < Button
         android:id="@+id/botConf"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/botonConf"
         / >

    < Button
         android:id="@+id/botAcerca"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/botonAcerca"
         android:onClick="lanzarAcercaDe"
         / >

    < Button
         android:id="@+id/botSalir"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:text="@string/botonSalir"
         / >

< /LinearLayout >

Como pueden ver solamente agregamos una nueva linea en el elemento llamado botAcerca, esta linea esta relacionada con el listener para el evento click (onClick) y al nosotros apretar el boton procede a utilizar el metodo lanzarAcercaDe() el cual producira la actividad, esto tambien se debe hacer en el otro layout (land/activity_main.xml) agregar la linea con el evento onClick en el mismo boton, si lo hacen correctamente deberian tener un resultado como se ve en el siguiente video

Si lograron lo mismo que en el video, Felicitaciones!! Hemos dado nuestro primer paso hacia nuestro primer juego en Android. Por hoy nada mas, hemos visto como crear un nuevo recurso, como utilizarlo por medio de una actividad y como configurar el entorno para no tener ningun error. Espero les haya sido util, sigueme en Twitter, Facebook o Google+ para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios