martes, 27 de noviembre de 2012

Hangman Android (I)

Como ya he comentado en una entrada anterior, he estado aprendiendo a programar aplicaciones en la plataforma Android. Todavía me queda mucho que aprender pero con lo que he aprendido hasta el momento ya he podido crear varias aplicaciones que se pueden enseñar al mundo. La que voy a describir en esta entrada no es la primera, pero si que es la que hasta la fecha me parece que está más completa.
La aplicación de la que estoy hablando es el juego del Ahorcado. Es la versión para Android de la aplicación que mostré en la última entrada de este blog. A continuación os muestro algunas imágenes del resultado final de la aplicación, así como el código correspondiente a dicha aplicación. En esta entrada podéis ver la parte de presentación de las distintas actividades que conforman la aplicación (los ficheros xml que definen la interfaz de usuario y como se visualizan). En la siguiente entrada añadiré el código que hay detrás de la actividad Game que es en la que se desarrolla realmente el juego.


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/linearLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/background1"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/linearLayout2"
         android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.40"
        android:orientation="vertical" android:background="@drawable/fondo_ahorcado">

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/main_title"
            android:textSize="24dip" android:layout_gravity="center" android:textColor="@color/main_title_color" android:layout_marginTop="25dip"/>

        <Button
            android:id="@+id/btnContinuar"
            android:layout_width="200dip"
            android:layout_height="wrap_content"
            android:text="@string/continue_label"
            android:layout_gravity="center"
            android:padding="12dip" android:layout_marginBottom="15dip" android:layout_marginTop="40dip"/>

        <Button
            android:id="@+id/btnNuevo"
            android:layout_width="200dip"
            android:layout_height="wrap_content"
            android:text="@string/new_game_label"
            android:layout_gravity="center" 
            android:padding="12dip" android:layout_marginBottom="15dip"/>

        <Button
            android:id="@+id/btnAcerca"
            android:layout_width="200dip"
            android:layout_height="wrap_content"
            android:text="@string/about_label"
            android:layout_gravity="center" 
            android:padding="12dip" android:layout_marginBottom="15dip"/>

        <Button
            android:id="@+id/btnSalir"
            android:layout_width="200dip"
            android:layout_height="wrap_content"
            android:text="@string/exit_label"
            android:layout_gravity="center" 
            android:padding="12dip" android:fadingEdge="none"/>
    </LinearLayout>

</LinearLayout>


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/llGame1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffee4444"
    android:orientation="vertical" >
   
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/llGame2"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/fondo_gradienteh"
    android:orientation="horizontal"
    android:layout_weight="1" >
      <!-- lblLetras -->

        <TextView
            android:id="@+id/TextView06"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="3dip"
            android:padding="3dip"
            android:text="_"
            android:textColor="@color/tvLetras_color"
            android:textSize="36dip" android:layout_marginBottom="2dip"/>

        <TextView
            android:id="@+id/TextView04"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="3dip"
            android:padding="3dip"
            android:text="_"
            android:textColor="@color/tvLetras_color"
            android:textSize="36dip" android:layout_marginBottom="2dip"/>

        <TextView
            android:id="@+id/TextView03"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="3dip"
            android:padding="3dip"
            android:text="_"
            android:textColor="@color/tvLetras_color"
            android:textSize="36dip" android:layout_marginBottom="2dip"/>

        <TextView
            android:id="@+id/TextView02"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="3dip"
            android:padding="3dip"
            android:text="_"
            android:textColor="@color/tvLetras_color"
            android:textSize="36dip" android:layout_marginBottom="2dip"/>

        <TextView
            android:id="@+id/TextView01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="3dip"
            android:padding="3dip"
            android:text="_"
            android:textColor="@color/tvLetras_color"
            android:textSize="36dip" android:layout_marginBottom="2dip"/>

        <TextView
            android:id="@+id/TextView05"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="3dip"
            android:text="_"
            android:textColor="@color/tvLetras_color"
            android:textSize="36dip" android:padding="3dip" android:layout_marginBottom="2dip"/>

    </LinearLayout>
   
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/llGame3"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#4444ff44"
    android:layout_weight="0.42"
    android:orientation="horizontal" >
      <!-- btnLetras y canvas -->
      <TableLayout
          android:id="@+id/tlBotonesLetras"
          android:layout_width="wrap_content"
          android:layout_height="fill_parent"
          android:background="@drawable/fondo_gradiente">
          <TableRow android:id="@+id/trow1">
            <Button
            android:id="@+id/btnLetra1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="a" android:layout_marginTop="2dip"/>
            <Button
            android:id="@+id/btnLetra2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="b" android:layout_marginTop="2dip"/>
            <Button
            android:id="@+id/btnLetra3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="c" android:layout_marginTop="2dip"/>
            <Button
            android:id="@+id/btnLetra4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="d" android:layout_marginTop="2dip"/>
            <Button
            android:id="@+id/btnLetra5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="e" android:layout_marginTop="2dip"/>
            <Button
            android:id="@+id/btnLetra6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="f" android:layout_marginTop="2dip"/>
           
          </TableRow>
          <TableRow android:id="@+id/trow2">
            <Button
            android:id="@+id/btnLetra7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="g" />
            <Button
            android:id="@+id/btnLetra8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="h" />
            <Button
            android:id="@+id/btnLetra9"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="i" />
            <Button
            android:id="@+id/btnLetra10"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="j" />
            <Button
            android:id="@+id/btnLetra11"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="k" />
            <Button
            android:id="@+id/btnLetra12"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="l" />
             
          </TableRow>
          <TableRow android:id="@+id/trow3">
            <Button
            android:id="@+id/btnLetra13"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="m" />
            <Button
            android:id="@+id/btnLetra14"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="n" />
            <Button
            android:id="@+id/btnLetra15"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ñ" />
            <Button
            android:id="@+id/btnLetra16"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="o" />
            <Button
            android:id="@+id/btnLetra17"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="p" />
            <Button
            android:id="@+id/btnLetra18"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="q" />
          </TableRow>
         
          <TableRow android:id="@+id/trow4">
            <Button
            android:id="@+id/btnLetra19"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="r" />
            <Button
            android:id="@+id/btnLetra20"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="s" />
            <Button
            android:id="@+id/btnLetra21"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="t" />
            <Button
            android:id="@+id/btnLetra22"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="u" />
            <Button
            android:id="@+id/btnLetra23"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="v" />
            <Button
            android:id="@+id/btnLetra24"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="w" />
           
          </TableRow>

          <TableRow android:id="@+id/trow5">
            <Button
            android:id="@+id/btnLetra25"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="x" android:layout_marginBottom="2dip"/>
            <Button
            android:id="@+id/btnLetra26"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="y" android:layout_marginBottom="2dip"/>
            <Button
            android:id="@+id/btnLetra27"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="z" android:layout_marginBottom="2dip"/>
            <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="invisible"
            android:text="" />
            <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="invisible"
            android:text="" />

            <ImageButton
                android:id="@+id/ibFlag"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:tag="invisible"/>

          
          </TableRow>
      </TableLayout>
     
      <LinearLayout
            android:id="@+id/llGame31"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@color/transparent"
        android:orientation="vertical" >
      </LinearLayout>
    </LinearLayout>
   
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/llGame4"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    android:layout_weight="1" android:background="@drawable/fondo_gradienteh">
        <!-- tvMensajes  y btnNuevo -->

        <TextView
            android:id="@+id/tvMensaje"
            android:layout_width="fill_parent"
            android:layout_height="40dip"
            android:text="TextView" android:layout_weight="0.6" android:layout_gravity="center" android:layout_marginRight="4dip" android:background="@drawable/fondo_gradienteh" android:textColor="@color/tvMensaje_textcolor" android:textSize="20dip"/>

        <Button
            android:id="@+id/btnNuevo"
            android:layout_width="fill_parent"
            android:layout_height="40dip"
            android:layout_weight="1"
            android:text="@string/btnNewGame" android:layout_gravity="center" android:layout_marginLeft="6dip" android:layout_marginRight="6dip"/>
       
    </LinearLayout>
   
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/llGame5"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/fondo_gradienteh"
    android:orientation="horizontal"
    android:layout_weight="1" >
        <!-- chkVerSolucion  y  txtSolucion -->

        <CheckBox
            android:id="@+id/chkMostrarSolucion"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" android:text="@string/chkMostrarSolucion_label"/>

        <TextView
            android:id="@+id/tvSolucion"
            android:layout_width="120dip"
            android:layout_height="wrap_content"
            android:text="Solución" android:textSize="21dip" android:layout_marginLeft="20dip" android:textColor="@color/tvLetras_color"/>

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="30dip"
            android:layout_height="30dip"
            android:src="@drawable/logo32" android:layout_marginTop="20dip"/>
       
    </LinearLayout>
</LinearLayout>



// OPCIONES DEL MENÚ DE CONFIGURACIÓN
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <ListPreference
        android:key="IDIOMA"
        android:title="Selección idioma"
        android:summary="Seleccionar idioma para jugar"
        android:dialogTitle="Indicar idioma"
        android:entries="@array/language"
        android:entryValues="@array/language_code"/>
    <ListPreference
        android:key="DIFICULTAD"
        android:title="Selección dificultad"
        android:summary="Seleccionar nivel de dificultad"
        android:dialogTitle="Indicar dificultad"
        android:entries="@array/difficulty_level"
        android:entryValues="@array/difficulty_code"/>
</PreferenceScreen>


// MENÚ CONFIGURACIÓN
<menu xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:id="@+id/itemConfiguracion" android:title="Configuración..."></item>
    </menu>

 //Actividad que genera las opciones de configuración
import android.os.Bundle;
import android.preference.PreferenceActivity;

public class Preferencias extends PreferenceActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.configuracion);
    }
}


No hay comentarios:

Publicar un comentario