manual de aplicaciones de android
TRANSCRIPT
COLEGIO DE ESTUDIOS CIENTÍFICOS Y TECNOLÓGICOS DEL ESTADO DE MÉXICO
TÉCNICO EN PROGRAMACIÓN
DESARROLLA APLICACIONES MÓVILES
ALUMNO: CHRISTIAN ULISES PÉREZ ESPINOSA
GRUPO: 403
MANUAL DE APLICACIONES DE ANDROID
INDICE
HOLA MUNDO….………………………………………...........................3 OPERACIONES……………………………………………………………8 IMC…...…………………………………………………………………….13FACTORIAL...…………………………………………............................17 ASTERISCOS…………………………………………............................20 ALBUM………………………………………………………………………27 ALL APP……………………………………………………………………34 COLOR HEX….……………………………………………………………40 REBOSO DROID..…………………………………………………………47 CALCULAR EDAD…...…………………………………..........................51 PHONEGAP………………………………………………………………..56BD INSERTAR,ELIMINAR,MODIFICAR Y CONSULTAR…………….60 LISTVIEW…..………………………………………………………………69MENÚ……………………………………………………………………….74TABHOST…………………………………………………………………..76ACELEROMETRO…………………………………………………………79CANVAS…………………………………………………………………….85GATO………………………………………………………………………..87CALCULADORA………………………………………………………….103SONIDOS ANIMALES…………………………………………………...122VIDEOVIEW………………………………………………………………125GIROSCOPIO…………………………………………………………….127NOTIFICACIONES……………………………………………………….133TOGGLEBUTTON………………………………………………………..135CHECKBOX……………………………………………………………….139RADIOBUTTON…………………………………………………………..144SPINNER………………………………………………………………….148WEBVIEW…………………………………………………………………154TIMEPICKER……………………………………………………………..158DATEPICKER…………………………………………………………….161
HOLA MUNDOEsta es la aplicación más sencilla de este manual ya que solo consta de crear la aplicación para obtener un hola mundo, pero esta se puede modificar, así que comencemos.
1.-Nos dirigimos a File->New->Android Application Project y nos aparecerá esta ventana.
2.-Le asignamos nombre a nuestra aplicación, seleccionamos un nombre a nuestro package(este debe ser único para no ocasionar conflictos al publicar una aplicación) y finalmente en esta ventana seleccionamos las versiones de Android en las que funcionara nuestra aplicación. El resultado sería el siguiente.
3.-Dando en Next nos mandara a una segunda ventana, en esta configuraremos el proyecto y damos Next.
4.-En esta parte seleccionaremos la imagen que tendrá nuestra aplicación. Tenemos tres tipos Imagen, un clip predeterminado o que sea texto este será como uno desee. También nos deja seleccionar el fondo de color, la forma de imagen y la distancia que tendrá nuestra imagen del borde.
5.-En esta ventana la dejamos como viene predeterminada y damos Next.
6.-En la última Seleccionamos el nombre del activity el cual puede quedarse como viene predeterminado y damos finish.
7.-Tenemos nuestro Hola Mundo, pero nosotros lo modificaremos a español y le daremos una mejor apariencia.
8.-Seleccionamos el layout (es el archivo con extensión XML)Y lo modificaremos como se muestra el código a continuación.
9.-Para la imagen de fondo se utiliza el background en el RelativeLayout que es el que abarca todo el código y para modificar el Hola Mundo ocupamos tamaño, posición, color y el texto en español.
Listo tenemos nuestro Hola Mundo terminado, fue bastante sencillo y es nuestra introducción a este manual, para terminar te muestro el resultado final corriendo en el dispositivo.
OPERACIONES1.-Como en la aplicación anterior creamos el proyecto de acuerdo a nuestras preferencias.2.-Creado el proyecto seleccionamos el layout(el archivo XML por si todavía no nos queda claro cuál es) y empezamos a modificarlo.3.-Lo que vamos a necesitar en este archivo es cambiar de RelativeLayout a LinearLayout y colocar la posición en este caso será vertical, además requerimos de dos EditText, un linear layout en posición horizontal para nuestros dos Button y finalmente un TextView.4.-Cada uno de estos va a ir con las propiedades que necesitemos, pero eso sí que en el LinearLayout es obligatorio que lleve la posición y tamaño del Layout.
5.-El código quedaría de esta manera.
6.-Ahora pasamos al archivo java, en el pondremos toda la codificación del layout que acabamos de crear.7.-Lo primero que haremos es al public class le agregaremos el implements OnClickListener y agregamos el método y la librería que nos pide.8.-Declaramos las variables dentro del Public Class de esta manera:
EditText edtNumeroUno, edtNumeroDos;TextView txtResultado;Button btnCalcular, btnBorrar;
Nos marcara un error basta con agregar la librería de cada una, esto se hace seleccionando el error y nos dara la opción de agregar librería.9.-En el Protected Void OnCreate enlazamos las variables que acabamos de crear con las del layout anteriormente creado Así mismo
le asignamos el método OnClickListener a los botones, deberá quedar de esta manera.
10.-Después en el método que creamos con el Onclick colocaremos la codificación de los botones, este método hara que cuando seleccionemos un botón haga lo deseado. Ocuparemos dos casos uno para el botón calcular y el otro para el botón borrar.11.-En el case del botón calcular primero obtendremos el valor de los dos EditText y los asignamos en una variable de tipo String para determinar si hacen falta valores o alguno es incorrecto.12.-Para obtener eso crearemos un if donde si los dos valores son diferentes a 0 proceda a realizar las operaciones en caso contrario con un else if arroje un mensaje de valores incorrectos.13.-Para que en caso de que sea diferente a cero dentro del if procederemos a convertir las variables de tipo String a tipo Double.14.-Posteriormente crearemos otro if, en el haremos que el valor que sea mayor ocupe la primer posición. Sí el número uno es mayor al número dos procederemos a realizar las operaciones de esta manera e insertando el resultado en el TextView, en caso contrario utilizaremos un else if donde si el número dos es mayor al número uno se realicen las operaciones de esa manera y se inserte en el TextView. El código quedará de esta manera.
15.-Procederemos a colocar un break y a colocar el case del botón borrar.16.-Dentro de este case insertaremos en los EditText y en el TextView el valor null, o solamente unas comillas. Quedaría de esta manera:
Así es como quedaría nuestra aplicación, que es bastante sencilla, sólo es entender el funcionamiento de cada elemento que tenemos en la aplicación. Por último así se vería la aplicación que acabamos de crear.
Como se puede observar no se ingresó ningún valor, por lo que nos marca valores incorrectos.
IMC1.-Una vez creado el proyecto, crearemos nuestra interfaz, posteriormente añadimos el primer LinearLayout. <?xml version=”1.0” encoding=”utf-8”?><LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”android:layout_width=”fill_parent”android:layout_height=”fill_parent”android:background=”#0015B7”android:orientation=”vertical” >2.-Añadimos un TextView con el título. <TextViewandroid:layout_width=”fill_parent”android:layout_height=”wrap_content”nti :padding=”20dp”nti :text=”Calculadora del IMC “nti :textSize=”20sp” />3.-Añadimos un EditText para que el usuario pueda introducir su peso:<EditTextnti :id=”@+id/peso”android:layout_width=”fill_parent”android:layout_height=”wrap_content”android:hint=”Introduce tu peso”android:inputType=”number”android:maxLength=”3” >
<requestFocus /></EditText>Nota: Con “requestFocus” le indicamos al sistema que al iniciar coloque en esta caja un brillo.4.-Añadimos otro EditText para que el usuario pueda introducir la altura:
<EditTextnti :id=”@+id/altura”android:layout_width=”fill_parent”android:layout_height=”wrap_content”android:hint=”Introduce tu altura”android:inputType=”number”android:maxLength=”3” />5.-Añadimos un botón para realizar calcular su nti :<Buttonnti :id=”@+id/calcular”android:layout_width=”wrap_content”android:layout_height=”wrap_content”android:layout_gravity=”center”android:layout_margin=”20dp”nti :text=”Calcular” />
</LinearLayout>6.-Nos vamos ahora a nuestro código java.7.-Lo primero es añadir a nuestra clase los EditText y el Button.EditText peso, altura;Button calcular;8.-En el OnCreate los vinculamos y poner el Listener que reaccionará al tocar el Botón:calcular = (Button) findViewById(R.id.calcular);calcular.setOnClickListener(this);peso = (EditText) findViewById(R.id.peso);altura = (EditText) findViewById(R.id.altura);9.-Ahora, agregamos el método onClickListener en nuestro Activity:public class IMCActivity extends Activity implements OnClickListener {Y añadimos el nti correspondiente al evento onClick:@Overridepublic void onClick(View v) {10.-Añadimos un switch con el case del botón calcular.Switch (v.getId()) {case R.id.calcular:
11.-Dentro de este haremos todos los cálculos y comprobaciones.12.-Después se comprueba que ningún campo esté en blanco, en ese caso se muestra un Toast indicando el campo que falta.13.-Ya que tengamos las comprobaciones pasamos todos los strings a float y realizamos los cálculos para mostrar un Toast con el resultado. El código seria el siguiete.
If (peso.getText().toString().trim().length() == 0) {peso.requestFocus();
Toast.makeText(IMCActivity.this,“Falta colocar el peso”, Toast.LENGTH_SHORT).show();} else if (altura.getText().toString().trim().length() == 0) {altura.requestFocus();
Toast.makeText(IMCActivity.this,“Falta colocar la altura”,Toast.LENGTH_SHORT).show();}else {float kg = Float.parseFloat(peso.getText().toString());float cm = Float.parseFloat(altura.getText().toString());float m = (cm / 100);float bmi = (kg / (m * m));
if (bmi < 18.5) {Toast.makeText(IMCActivity.this,“Tu IMC es “ + bmi + “\n” + “Estás delgado”,Toast.LENGTH_SHORT).show();} else {if (bmi < 24.9) {Toast.makeText(IMCActivity.this,“Tu IMC es “ + bmi + “\n”
+ “Tu peso es normal”,Toast.LENGTH_SHORT).show();} else {if (bmi < 29.9) {Toast.makeText(IMCActivity.this,“Tu IMC es “ + bmi + “\n”+ “Tienes sobrepeso”,Toast.LENGTH_SHORT).show();} else {if (bmi > 30) {Toast.makeText(IMCActivity.this,“Tu IMC es “ + bmi + “\n”+ “Padeces obesidad”,Toast.LENGTH_SHORT).show();}}}}Así quedaría terminada la App y con esto podemos observar que ya incluimos nuevos códigos para el desarrollo, por lo que empieza a ser más complicado. Como último te muestro el resultado funcionando.
FACTORIAL1.-Crea tu proyecto.2.-Selecciona tu layout y cambia el RelativeLayout por LinearLayout y dale orientación vertical.3.-Crea otro LinearLayout y colocale sus propiedades, este tendrá orientación horizontal.4.-Coloca un EditText para que el usuario ingrese el número que desea.5.-Coloca un Button para que se calcule el factorial del número y luego cierra el LinearLayout.6.-Coloca un TextView para colocar los resultados. El código debería quedar así:<LinearLayout 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” android:orientation=”vertical” > <LinearLayout android:layout_width=”match_parent” android:layout_height=”wrap_content” > <EditText android:id=”@+id/entrada” android:layout_width=”0dip” android:layout_height=”wrap_content” android:layout_weight=”1” android:hint = ”Ingresa numero” android:inputType=”numberDecimal” > <requestFocus /> </EditText> <Button android:id=”@+id/factorial” android:layout_width=”wrap_content” android:layout_height=”wrap_content” android:text = ”Calcular factorial” /> </LinearLayout> <TextView android:id=”@+id/salida” android:layout_width=”match_parent” android:layout_height=”match_parent” android:text = ” “ android:textAppearance=”?android:attr/textAppearanceMedium”/></LinearLayout>
7.-Ahora pasamos al java y hacemos lo mismo que en las aplicaciones anteriores, declaramos variables, enlazamos con el layout y agregamos el método OnClickListener.
8.-En el método OnClick agregamos un switch con el case del botón factorial, en el agregamos el código para ingresar el resultado en el TextView.9.-Creamos un método público para realizar la operación.El archivo java quedaría así:package com.wero.factorial;
import android.os.Bundle;import android.os.SystemClock;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.*;
public class MainActivity extends Activity implements OnClickListener {EditText entrada;TextView salida;Button factorial;int resultado=0;int n=0; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); entrada = (EditText) findViewById(R.id.entrada); salida = (TextView) findViewById(R.id.salida); factorial = (Button) findViewById(R.id.factorial); factorial.setOnClickListener(this); }
@Overridepublic void onClick(View v) {
switch(v.getId()){case R.id.factorial:
int n = Integer.parseInt(entrada.getText().toString());salida.append(n +”! = “);resultado=factorial(n);salida.append(resultado +”\n”);
}}
public int factorial(int n) {int fac=1;for(nti =1;i<=n;i++){
fac*=i;}return fac;
}
}
Una aplicación más terminada, esta fue más sencilla que la anterior en cuanto a código, ya que el único inconveniente es el cómo se obtiene el factorial de un número. Como último te muestro el resultado.
ASTERISCOSA continuación elaboraremos una aplicación pero no en Android, esta será en java, esto con la finalidad de ver el funcionamiento del ciclo for.1.-En un editor de texto agregamos el Scanner de la siguiente manera:import java.util.*;
public class figuras{public static void main(String[] args){
Scanner asterisco=new Scanner(System.in);2.-Ahora procedemos con el programa con un ciclo for para que nos repita el programa hasta que el usuario termine o se terminen las oportunidades-3.-A continuación agregamos un menú para que el usuario decida la figura que quiera.4.- En cada posición elaboramos la figura correspondiente con la ayuda del ciclo for que nos ayudara a imprimir los asteriscos en orden.El código seria el siguiente:import java.util.*;
public class figuras{public static void main(String[] args){
Scanner asterisco=new Scanner(System.in);for(int o=0; o<=10; o++){
System.out.println(“1.- Cuadro”);System.out.println(“2.- Cuadro contorno”);System.out.println(“3.- Flecha”);System.out.println(“4.- Rombo “);System.out.println(“5.- Rombo contorno”);System.out.println(“6.- Salir”);
int ab=asterisco.nextInt();
if(ab==1){int n=asterisco.nextInt();
for(int j=0;j<n;j++){for(nti =0;i<n;i++){
System.out.print(“* “);}System.out.println(“”);
}}
if(ab==2){int n=asterisco.nextInt();
for(int j=0;j<n;j++){System.out.print(“* “);
}System.out.println(“”);for(int j=0;j<(n-2);j++){
System.out.print(“* “);for(nti =0;i<(n-2);i++){
System.out.print(“ “);}System.out.println(“* “);
}
for(int j=0;j<n;j++){System.out.print(“* “);
}}
if(ab==3){int n=asterisco.nextInt();
for(int l=0;l<n;l++){for(nti =(n-l);i>0;i--){
System.out.print(“ “);}for(int j=0;j<=(l*2);j++){
System.out.print(“* “);}System.out.println(“”);
}for(int b=0;b<n;b++){
for(int a=0;a<(n*2);a++){System.out.print(“ “);
}System.out.println(“* “);
}}
if(ab==4){int n=asterisco.nextInt();for (nti =1;i<=n;i++){ for (int e=n-i;e>0;e--) System.out.print(“ “); for (int l=1;l<2*i;l++) System.out.print(“*”); System.out.println(“”); } for (nti =(n-1);i>=1;i--){ for (int e=n-i;e>0;e--) System.out.print(“ “); for (int l=1;l<(2*i);l++)
System.out.print(“*”); System.out.println(“”); }
}
if(ab==5){int n=asterisco.nextInt();
int vi=0;int vf=0;
for(int horiz=0;horiz<numero;horiz++){System.out.print(“ “);
}System.out.print(“* “);System.out.print(“\n”);
for(int vert=2;vert<=numero;vert++){//inicio for verticalSystem.out.print(“ “);
for(int horiz=vi;horiz<numero-2;horiz++){System.out.print(“ “);
}vi=vi+1;
for(int horiz=1;horiz<=1;horiz++){System.out.print(“* “);
}
for(int horiz=0;horiz<=vf;horiz++){System.out.print(“ “);
}
for(int horiz=1;horiz<=vf;horiz++){System.out.print(“ “);
}vf=vf+1;for(int horiz=1;horiz<=1;horiz++){
System.out.print(“* “);}
System.out.print(“\n”);}//fin for vertical//System.out.print(“\n\n”);
vi=0;vf=0;
for(int vert=3;vert<=numero;vert++){//inicio for verticalSystem.out.print(“ “);
for(int horiz=0;horiz<=vf;horiz++){System.out.print(“ “);
}vf=vf+1;
for(int horiz=0;horiz<=0;horiz++){System.out.print(“* “);
}
for(int horiz=vi;horiz<=numero-4;horiz++){System.out.print(“ “);
}
for(int horiz=vi;horiz<=numero-3;horiz++){System.out.print(“ “);
}vi=vi+1;
for(int horiz=0;horiz<=0;horiz++){System.out.print(“* “);
}
System.out.print(“\n”);}//fin for verticalfor(int horiz=0;horiz<numero;horiz++){System.out.print(“ “);}System.out.print(“* “);System.out.print(“\n”);
}if(ab==6){o=10;}}
}
}Como veras lo único complicado es comprender el funcionamiento del ciclo for para ordenar los asteriscos y nos forme una figura. Pero ahora es como sería el funcionamiento en Android, ¿Podrá funcionar?Como último te dejo el ejemplo funcionando en jdk:
Para que funcione, necesitas descargar jdk en tu computadora, ya instalado buscar la carpeta bin(como ejemplo C:\Program Files\Java\jdk1.8.0_25\bin) después copiar la ubicación para dirigirnos a equipo,click derecho propiedades,opciones avanzadas,path y eliminar el contenido hasta el “;” después pegar el link y dar aceptar, para hacer funcionar nuestra app, primero la compilamos con javac asteriscos.java y para ejecutarla lo hacemos con java asteriscos.
ALBUM1.-Cuando tengamos el proyecto creado nos dirigimos al layout.
2.-En el comenzamos con el LinearLayout principal, este con orientación vertical y proseguimos con el Imageview principal, este nos sirve para mostrar una imagen en el programa. Esto se hace con el android background (la imagen se guarda en la carpeta res->drawable-mdpi).
3.-El siguiente paso es declarar el HorizontalScrollView, este nos ayuda alineando de manera horizontal un conjunto de views.
4.-Después colocamos un LinearLayout con orientación horizontal y dentro de este declaramos todas las imágenes (con el ImageView) para que se desplacen y puedan verse.
5.-Posteriormente de haber insertado el determinado número de imágenes que se quieran cerramos el LinearLayout y el HorizontalScrollView.
6.-Para seleccionar la imagen que se quiera como Wallpaper ocuparemos un botón, así que lo colocamos.
7.-Cerramos el LinearLayout principal y el código quedaría así (dependiendo de las imágenes que se quieran).
<LinearLayout 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" android:orientation="vertical" >
<ImageView android:id="@+id/image" android:layout_width="match_parent"
android:layout_height="200sp" android:src="@drawable/uno" />
<HorizontalScrollView android:layout_width="match_parent" android:layout_height="100sp" >
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" >
<ImageView android:id="@+id/image1" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/uno" />
<ImageView android:id="@+id/image2" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/tres" />
<ImageView android:id="@+id/image3" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/cuatro" />
<ImageView android:id="@+id/image4" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/cinco" />
<ImageView android:id="@+id/image5" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/seis" />
<ImageView android:id="@+id/image6" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/siete" />
<ImageView android:id="@+id/image7" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/ocho" />
<ImageView android:id="@+id/image8" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/nueve" />
<ImageView android:id="@+id/image9" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/descarga" />
<ImageView android:id="@+id/image10" android:layout_width="100sp" android:layout_height="100sp"
android:src="@drawable/lalo" /> </LinearLayout> </HorizontalScrollView>
<Button android:id="@+id/cambiar" android:layout_width="match_parent" android:layout_height="70sp" android:text="Cambiar Wallpaper" /> </LinearLayout>
8.-Como anteriormente lo hemos visto enlazaremos el layout con el código9.-En el switch colocaremos el case de las imágenes para que se puedan desplazar por el ScrollView y podamos seleccionar una.10.-Colocamos el case del botón para que la imagen que tengamos seleccionada nos la coloque de fondo de pantalla.El Código seria el siguiente:<LinearLayout 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" android:orientation="vertical" >
<ImageView android:id="@+id/image" android:layout_width="match_parent" android:layout_height="200sp" android:src="@drawable/uno" />
<HorizontalScrollView android:layout_width="match_parent" android:layout_height="100sp" >
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" >
<ImageView android:id="@+id/image1" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/uno" />
<ImageView android:id="@+id/image2" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/tres" />
<ImageView android:id="@+id/image3" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/cuatro" />
<ImageView android:id="@+id/image4" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/cinco" />
<ImageView android:id="@+id/image5" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/seis" />
<ImageView android:id="@+id/image6" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/siete" />
<ImageView android:id="@+id/image7" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/ocho" />
<ImageView android:id="@+id/image8" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/nueve" />
<ImageView android:id="@+id/image9" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/descarga" />
<ImageView android:id="@+id/image10" android:layout_width="100sp" android:layout_height="100sp" android:src="@drawable/lalo" /> </LinearLayout> </HorizontalScrollView>
<Button android:id="@+id/cambiar" android:layout_width="match_parent"
android:layout_height="70sp" android:text="Cambiar Wallpaper" /> </LinearLayout>11.-Como último agregamos el permiso, para que nos deje cambiar el fondo de pantalla, en el AndroidMainfest colocamos el siguiente código.<uses-permission android:name="android.permission.SET_WALLPAPER"/>
Así es como tendriamos esta aplicación que es sencilla y nos permite cambiar nuestro fondo de pantalla con las imágenes que más nos gusten.Te muestro como se veria el resultado final.
ALL APP1-Crea tu proyecto.2.-Copia los .JAVA y .XML de tus aplicaciones anteriores y pégalos en la carpeta que corresponden.3.-Copia el contenido que tengan tus aplicaciones (ejemplo imágenes).4.-Ahora sí vamos con el layout principal, crea un botón para cada aplicación.El código debería quedar similar a este:<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" android:background="@drawable/back" tools:context=".AllApp" >
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" >
<Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20sp" android:layout_marginRight="20sp" android:layout_marginTop="10sp" android:text="Hola Mundo" android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" />
<Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20sp" android:layout_marginRight="20sp" android:layout_marginTop="10sp" android:text="Operaciones" android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" />
<Button android:id="@+id/button3" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_marginLeft="20sp" android:layout_marginRight="20sp" android:layout_marginTop="10sp" android:text="Tablas" android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" />
<Button android:id="@+id/button4" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20sp" android:layout_marginRight="20sp" android:layout_marginTop="10sp" android:text="Zodiaco" android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" />
<Button android:id="@+id/button5" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20sp" android:layout_marginRight="20sp" android:layout_marginTop="10sp" android:text="Numero Binario" android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" />
<Button android:id="@+id/button6" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20sp" android:layout_marginRight="20sp" android:layout_marginTop="10sp" android:text="Calcular Edad" android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" />
<Button android:id="@+id/button7" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20sp" android:layout_marginRight="20sp" android:layout_marginTop="10sp"
android:text="Wallpaper" android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" /> </LinearLayout>
</RelativeLayout>
5.-En el código volveremos a enlazar y hacer lo mismo de las App anteriores.6.-En el case de cada botón pondremos un intent para que nos abra la aplicación que queramos, para esto dejo el código completo:package com.wero.allapp;
import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.*;
public class AllApp extends Activity implements OnClickListener {
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_all_app);Button b1 = (Button) findViewById(R.id.button1);Button b2 = (Button) findViewById(R.id.button2);Button b3 = (Button) findViewById(R.id.button3);Button b4 = (Button) findViewById(R.id.button4);Button b5 = (Button) findViewById(R.id.button5);Button b6 = (Button) findViewById(R.id.button6);Button b7 = (Button) findViewById(R.id.button7);b1.setOnClickListener(this);b2.setOnClickListener(this);b3.setOnClickListener(this);b4.setOnClickListener(this);b5.setOnClickListener(this);b6.setOnClickListener(this);b7.setOnClickListener(this);
}
@Overridepublic void onClick(View v) {
switch (v.getId()) {case R.id.button1:
Intent hm=new Intent(AllApp.this,HolaMundo.class);startActivity(hm);break;
case R.id.button2:
Intent op=new Intent(AllApp.this,Operaciones.class);startActivity(op);break;
case R.id.button3:Intent tb=new Intent(AllApp.this,Multiplicacion.class);startActivity(tb);break;
case R.id.button4:Intent zo=new Intent(AllApp.this,Zodiaco.class);startActivity(zo);break;
case R.id.button5:Intent nb=new Intent(AllApp.this,NumerosBinarios.class);startActivity(nb);break;
case R.id.button6:Intent ce=new Intent(AllApp.this,CalcularEdad.class);startActivity(ce);break;
case R.id.button7:Intent wp=new Intent(AllApp.this,Album.class);startActivity(wp);break;
}}
}
7.- Ahora nos dirigimos al AndroidManifest y colocamos los activitys correspondientes a cada App:<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.wero.allapp" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.wero.allapp.AllApp" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </activity> <activity android:name="com.wero.allapp.HolaMundo" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.DEFAULT" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.wero.allapp.Album" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.DEFAULT" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.wero.allapp.CalcularEdad" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.DEFAULT" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.wero.allapp.Multiplicacion" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.DEFAULT" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.wero.allapp.NumerosBinarios" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.DEFAULT" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
<activity android:name="com.wero.allapp.Zodiaco" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.DEFAULT" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.wero.allapp.Operaciones" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.DEFAULT" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
Nuestra aplicación está terminada, si te das cuenta es bastante sencilla, ya que solamente es abrir los archivos que ya tenemos creados. La aplicación debería quedar similar a esta:
COLORHEX
1.- Lo primero es el LinearLayout principal, esta vez con orientación vertical. Después de este otro LinearLayout con orientación horizontal.
2.-Dentro de este colocaremos dos TextView para el color rojo.3.-Despues agregamos una SeekBar.4.-Repetimos los pasos anteriores para los otros dos colores.5.-Colocamos un TextView para la tonalidad de color.
6.-Creamos otro linear horizontal y dentro de el creamos un seek bar, este nos sirve para avanzar o retroceder mediante una barra
7.-Cerramos el linear y creamos otro con la misma orientacion (horizontal) y repetimos el paso anterior de insertar dos textviews, ahora con los valores de verde.
8.-Como anteriormente hicimos lo primero es implementar metodos y clases, esta vez usaremos no el onclick si no el seekbarchangelistener que nos permite su uso.
9.-Proseguimos con la declaración de los TextViews y las seek bar. También tres variables de tipo entero que son iguales a cero. Posteriormente como si se tratara del método OnClick tenemos que declarar las 3 seek bar con el seekbarchangelistener y cerramos esta parte.
10.-El siguiente paso es el uso del switch y los casos por cada color (rojo, azul y verde).
11.-En esta parte se realiza el proceso donde las seek bar están concatenadas y al nosotros moverla esta cambiara tanto el fondo con el color que se muestre como así el número hexadecimal correspondiente al color. También se pueden usar al mismo tiempo las tres, lo que nos dará la combinación de colores y sus códigos también.
El código quedara de esta manera:
package com.wero.colordroid;
import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.*;
public class ColorDroid extends Activity implementsSeekBar.OnSeekBarChangeListener {
SeekBar rojo, verde, azul;TextView vrojo, vverde, vazul, hex, color;int r = 0, v = 0, a = 0;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_color_droid);rojo = (SeekBar) findViewById(R.id.rojo);verde = (SeekBar) findViewById(R.id.verde);azul = (SeekBar) findViewById(R.id.azul);hex = (TextView) findViewById(R.id.hex);color = (TextView) findViewById(R.id.color);
vrojo = (TextView) findViewById(R.id.vrojo);vverde = (TextView) findViewById(R.id.vverde);vazul = (TextView) findViewById(R.id.vazul);rojo.setOnSeekBarChangeListener(this);verde.setOnSeekBarChangeListener(this);azul.setOnSeekBarChangeListener(this);
}
@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {switch (seekBar.getId()) {case R.id.rojo:
r = progress;break;
case R.id.verde:v = progress;break;
case R.id.azul:a = progress;break;
}String c = ColorHex(r, v, a);hex.setText("HEX: " + c);color.setBackgroundColor(android.graphics.Color.rgb(r,
v, a));}
public String ColorHex(int r, int v, int a) {String color = "";color = "#";color += Integer.toHexString(r);color += Integer.toHexString(v);color += Integer.toHexString(a);return color;
}
@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {
vrojo.setText("R: " + r);vverde.setText("V: " + v);vazul.setText("A: " + a);
}
@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {
vrojo.setText("R: " + r);vverde.setText("V: " + v);vazul.setText("A: " + a);
}
}
Como vemos con Android no tenemos limitantes podemos agregar bastantes cosas, y no es complicado solo lleva tiempo. Te dejo el resultado final.
REBOSO DROID
1.-Con el proyecto creado nos dirigimos al layout.
2.-Colocamos dos EditText y un botón.
El código quedara así.
<LinearLayout 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"
android:background="#230ff0"
android:orientation="vertical" >
<EditText
android:id="@+id/nombre"
android:layout_width="match_parent"
android:layout_height="60sp"
android:layout_margin="10sp"
android:background="#FFFFFF"
android:hint="Nombre"
android:maxLength="20"
android:textSize="50sp" />
<EditText
android:id="@+id/edad"
android:layout_width="match_parent"
android:layout_height="60sp"
android:layout_margin="10sp"
android:background="#FFFFFF"
android:hint="Edad"
android:maxLength="2"
android:numeric="integer"
android:textSize="50sp" />
<Button
android:id="@+id/enviar"
android:layout_width="match_parent"
android:layout_height="60sp"
android:layout_margin="10sp"
android:background="#FFFFFF"
android:text="Enviar"
android:textSize="50sp" />
</LinearLayout>
3.-Creamos otro activity y este solo tendrá un TextView.
<LinearLayout 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"
android:background="#230ff0"
android:orientation="vertical" >
<TextView
android:id="@+id/resultado"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10sp"
android:textSize="50sp" />
</LinearLayout>
4.-Creamos el código del Activity envía, este será como lo hemos visto, tendrá un intent , pero ahora nos mandará información.
package com.wero.bolsadroid;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.*;public class Envia extends Activity implements OnClickListener {EditText nombre,edad;Button enviar;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_envia);
nombre=(EditText)findViewById(R.id.nombre);edad=(EditText)findViewById(R.id.edad);enviar=(Button)findViewById(R.id.enviar);enviar.setOnClickListener(this);}@Overridepublic void onClick(View v) {
if (v.getId()==R.id.enviar){String n=nombre.getText().toString();String e=edad.getText().toString();
if((!n.equals("")|| !e.equals(""))||(!n.equals("")&& !e.equals(""))){
Intent enviardatos=new Intent (this,Recibe.class);enviardatos.putExtra("nombre", n);enviardatos.putExtra("edad", e);startActivity(enviardatos);
}else{Toast.makeText(this,"Faltan
Valores",Toast.LENGTH_LONG).show();}}
}
}
5.-Ahora creamos el código del activity recibe, este será de esta manera:
package com.wero.bolsadroid;
import android.os.Bundle;
import android.app.Activity;import android.widget.*;public class Recibe extends Activity {TextView resultado;String nombre="";int edad=0;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_recibe);
resultado=(TextView)findViewById(R.id.resultado);Bundle recibedatos=getIntent().getExtras();nombre=recibedatos.getString("nombre");edad=Integer.parseInt(recibedatos.getString("edad"));resultado.setText("Hola!!! "+nombre+"\n"+"tu edad es:
"+edad);}
}
6.-Ahora sólo queda agregar el segundo activity en AndroidManifest.
Nuestra App estaría terminada, esto nos ayuda demasiado para agregar información en algún sitio. La App se verá así al recibir el mensaje.
CALCULAR EDAD
1.-Creamos el proyecto.
2.-En el layout tenemos como primer elemento el LinearLayout principal con orientación vertical y dentro de este tenemos tres EditText, uno por cada elemento de la fecha de nacimiento (día, mes y año).
3.- Después, agregamos otro LinearLayout con orientación horizontal.
4.- Agregamos los botones, borrar y calcular y cerramos el LinearLayout.
5.- Por ultimo tenemos el TextView donde se mostrara el resultado de calcular la edad.
El código es el siguiente:
.
6.-En el código java nos dirigimos a la clase he implementamos el método OnClickListener.
7.-Despues enlazamos nuestros views con el layout y a nuestros botones agregamos el método OnClickListener.
8.-Colocamos el proceso de nuestros botones con el switch-case.
9.-El primer proceso es el de calcular, tomamos la información de nuestros EditText y nos encargamos de convertirlo a tipo entero.
10.-Déspues declaramos 6 variables de tipo entero, su función será determinar la fecha actual para comparar con la que el usuario introduzca.
11. Luego pasamos a las condiciones para que nos de la fecha correcta y sin números negativos y para que reste bien.
12.-El primer caso es cuando el día de nacimiento es mayor al actual.
13.-El siguiente es cuando el mes de nacimiento es mayor al mes actual.
14.-El otro caso es cuando el día actual es mayor y el mes es igual.
15.-Cuando tengamos declarados los casos mandamos el mensaje a nuestro TextView con el resultado.
16.-En caso contrario nos manda un mensaje de que los valores son incorrectos.
17.-Cerramos el case y abrimos el ultimo para nuestro botón borrar.
Este es el código:
package com.wero.calcularedad;
import android.os.Bundle;import android.app.Activity;import android.view.View;import android.view.View.OnClickListener;import android.widget.*;
public class CalcularEdad extends Activity implements OnClickListener {
int anos, meses, dias;EditText edtano, edtmes, edtdia, edtnombre;
TextView txtResultado;Button btnCalcular, btnBorrar;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_calcular_edad);edtdia = (EditText) findViewById(R.id.dia);edtmes = (EditText) findViewById(R.id.mes);edtano = (EditText) findViewById(R.id.ano);edtnombre = (EditText) findViewById(R.id.nombre);txtResultado = (TextView) findViewById(R.id.res);btnCalcular = (Button) findViewById(R.id.cal);btnBorrar = (Button) findViewById(R.id.bor);btnCalcular.setOnClickListener(this);btnBorrar.setOnClickListener(this);
}
@Overridepublic void onClick(View v) {
switch (v.getId()) {case R.id.cal:
String u = edtdia.getText().toString();String g = edtmes.getText().toString();String k = edtano.getText().toString();if (!u.equals("") && !g.equals("") && !
k.equals("")) {int dia =
Integer.parseInt(edtdia.getText().toString());int mes =
Integer.parseInt(edtmes.getText().toString());int ano =
Integer.parseInt(edtano.getText().toString());
if (04 == mes) {if (22 >= dia) {
anos = 2015 - ano;} else {
anos = 2015 - ano - 1;}
}if (04 > mes) {
anos = 2015 - ano;} else {
if (04 < mes) {anos = 2015 - ano - 1;
}}if (04 == mes) {
meses = 0;}if (04 == mes && dia > 22) {
meses = 11;}if (04 < mes) {
meses = 04 - mes;meses = 12 + meses;
}if (04 < mes && dia > 22) {
meses = 04 - mes;meses = 12 + meses - 1;
}if (04 > mes) {
meses = 04 - mes;}if (04 > mes && dia > 22) {
meses = 04 - mes - 1;}if (dia == 22) {
dias = 0;} else {
if (22 > dia) {dias = 22 - dia;
} else {switch (04) {case 1:
dias = 22 - dia;dias = 30 + dias;break;
}}
}
}txtResultado.setText("Tienes: " + anos + " anos,
con: " + meses+ " meses y: " + dias + " dias");
if(dias>30 && dias<0 && meses>12&& meses<0 && anos>2015 && anos>1980){
txtResultado.setText("Valores Incorrectos");}
break;
case R.id.bor:edtdia.setText("");edtmes.setText("");edtano.setText("");edtnombre.setText("");txtResultado.setText("");
break;
}
}
}
En esta aplicación es cuestión de hacer bien las condiciones, porque en caso contrario nos dará un resultado no deseado. Te dejó el ejemplo.
PHONEGAP
1.-Una vez preparado el proyecto para usar PhoneGap como hemos indicado anteriormente, ahora abriremos el fichero .java de nuestra aplicación.
2.-Modificaremos el código anterior por el siguiente, para que la aplicación no inicie el activity anterior sino que lance un fichero HTML correspondiente al proyecto PhoneGap. Para ello añadiremos el siguiente código:
package com.wero.phonegap;
import android.os.Bundle;
import org.apache.cordova.*;
public class MainActivity extends DroidGap
{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.loadUrl("file://android_asset/www/index.html");
}
}
3.-Como se puede observar el único código Java que usaremos en nuestro proyecto será el anterior para iniciar el fichero PhoneGap (index.html), el resto de código y lógica de la aplicación se desarrollará con HTML y JavaScript (como indicaremos a continuación).
4.-Crearemos el fichero "index.html" que será el que lanzará la aplicación, con formato HTML, para ello, desde la carpeta "assets/www", pulsaremos con el botón derecho del ratón y seleccionaremos "New" - "File".
5.-En "File name" introduciremos "index.html":
6-Tras crear el fichero "index.html", para abrirlo directamente desde Eclipse, pulsaremos con el botón derecho del ratón sobre él (en Project Explorer) y seleccionaremos "Open with" - "Text Editor":
7.-Introduciremos el código HTML y Javascrit de la aplicación PhoneGap, como ejemplo introduciremos el siguiente código:
<!DOCTYPE HTML><html><head><title>PhoneGap</title>
<script type="text/javascript" charset="utf-8" src="cordova-2.7.0.js">
</script>
</head><body><h1>Hola mundo PhoneGap</h1><p>Ejemplo de aplicación Android con PhoneGap y Eclipse</p></body></html>
8.-Guardaremos los cambios.
Eso sería todo en esta aplicación, podemos ver que es muy sencilla y que depende del framework, sin él no funciona esta App. Ahora te dejo la aplicación funcionando.
BD INSERTAR, MODIFICAR, ELIMINAR Y CONSULTAR
1.-En esta ocasión resumiré el layout, requerimos de tres EditText verticales, cinco botones horizontales, otro EditText, este ira con los botones y un TextView. Quedará así.
<LinearLayout 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" android:background="#000000" android:orientation="vertical" >
<EditText android:id="@+id/nombre" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10sp" android:background="#00CCFF" android:gravity="center" android:hint = "Marca" android:maxLength="20" android:textSize="20sp" />
<EditText android:id="@+id/apellido" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10sp" android:background="#00CCFF" android:gravity="center" android:hint = "RAM" android:maxLength="20" android:textSize="20sp" />
<EditText android:id="@+id/edad" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10sp" android:background="#00CCFF" android:gravity="center" android:hint = "Procesador" android:maxLength="20" android:textSize="20sp" />
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0" android:orientation="horizontal" >
<Button android:id="@+id/insertar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10sp" android:layout_weight = "1" android:background="#FFFFFF" android:gravity="center" android:maxLength="20" android:onClick="Insertar" android:text = "Insertar" android:textSize="20sp" />
<Button android:id="@+id/ver" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10sp" android:layout_weight="1" android:background="#FFFFFF" android:onClick="Ver" android:text = "Ver" android:textSize="20sp" /> <Button android:id="@+id/borrar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10sp" android:layout_weight="1" android:background="#FFFFFF" android:onClick="Borrar" android:text = "Borrar" android:textSize="20sp" />
</LinearLayout>
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="0" android:orientation="horizontal" >
<EditText android:id="@+id/id" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight = "1" android:layout_margin="10sp" android:background="#00CCFF" android:gravity="center" android:hint = "ID" android:maxLength="20" android:textSize="20sp" />
<Button android:id="@+id/buscar"
android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:layout_margin="10sp" android:background="#FFFFFF" android:onClick="Buscar" android:text = "buscar" android:textSize="20sp" /> <Button android:id="@+id/modificar" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10sp" android:layout_weight="1" android:background="#FFFFFF" android:onClick="Modificar" android:text = "Modificar" android:textSize="20sp" /> </LinearLayout> <ScrollView android:layout_width="match_parent" android:layout_height="wrap_content" >
<TextView android:id="@+id/tver" android:layout_width="match_parent" android:layout_height="wrap_content" android:text = "TextView" android:textColor="#FFFFFF" /> </ScrollView>
</LinearLayout>
2.-En java primero hay que crear un auxiliar de android para base de datos. El sqlite, aquí crearemos la tabla y los campos de la misma.
import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;
public class BaseDatos extends SQLiteOpenHelper {
public BaseDatos(Context context) {super(context, "compu.db", null, 1);
}
@Overridepublic void onCreate(SQLiteDatabase db) {
String sql="Create table compus(id integer primary key autoincrement, marca text, ram text, procesador text);";
db.execSQL(sql);
}
@Override public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
}
}
3.-Para usar el sqlite debemos crear una nueva clase en nuestra carpeta src, una vez hecho esto implementamos unas librerías e implementamos el método después nos pondrá dos predeterminados y en ellos crearemos la tabla y los campos con el lenguaje sql .
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.widget.Toast;
public class Compus {
String marca, ram , procesador;
int idn;
Context contextoEjecucion;
BaseDatos creador;
SQLiteDatabase mDatos;
public Compus (Context c){
contextoEjecucion = c;
}
public Compus abrirSqlite(){
creador = new BaseDatos (contextoEjecucion);
mDatos = creador.getWritableDatabase();
return this;
}
public void elimina(int id){
creador = new BaseDatos (contextoEjecucion);
mDatos = creador.getReadableDatabase();
String sql = ("delete from compus where id="+id);
mDatos.execSQL(sql);
}
public void insertar(String marca, String ram, String procesador){
creador = new BaseDatos (contextoEjecucion);
mDatos = creador.getReadableDatabase();
String sql = ("insert into compus(marca,ram,procesador) values('"+marca+"','"+ram+"','"+procesador+"')");
mDatos.execSQL(sql);
}
public void modificar(int id,String marca, String ram, String procesador){
creador = new BaseDatos (contextoEjecucion);
mDatos = creador.getReadableDatabase();
String sql = ("update compus set marca='"+marca+"', ram='"+ram+"', procesador='"+procesador+"' where id="+id);
mDatos.execSQL(sql);
}
public boolean consultar(int id){
creador = new BaseDatos (contextoEjecucion);
mDatos = creador.getReadableDatabase();
String sql = ("Select * from compus where id="+id);
Cursor cur = mDatos.rawQuery(sql, null);
if(cur.getCount()==0){
return false;
}else{
cur.moveToFirst();
idn=cur.getInt(0);
marca=cur.getString(1);
ram=cur.getString(2);
procesador=cur.getString(3);
return true;
}
}
public String getMarca(){
return marca;
}
public String getRam(){
return ram;
}
public String getProcesador(){
return procesador;
}
public int getId(){
return idn;
}
public String ver(){
String datos="";
creador = new BaseDatos (contextoEjecucion);
mDatos = creador.getReadableDatabase();
String sql = ("Select * from compus");
Cursor cur = mDatos.rawQuery(sql, null);
cur.moveToFirst();
do{
datos+= cur.getString(0) + "\t " + cur.getString(1) + "\t " + cur.getString(2) + " \t" + cur.getString(3) + "\n";
}while (cur.moveToNext());
return datos;
}
public void cerrarSqlite(){
creador.close();
}
}
4.-Una vez creada nuestra bd podemos ir a la programación habitual para el proceso de los botones y el enlace de la bd y los views.
import android.os.Bundle;import android.app.Activity;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;
public class Pricipal extends Activity {EditText eNombre, eApellido, eEdad,id;
TextView tVer;
Button insertar, ver,buscar,borrar; int idm; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pricipal); insertar = (Button)findViewById(R.id.insertar); ver = (Button)findViewById(R.id.ver); buscar = (Button)findViewById(R.id.buscar); borrar = (Button)findViewById(R.id.borrar); eNombre = (EditText)findViewById(R.id.nombre); id = (EditText)findViewById(R.id.id); eApellido = (EditText)findViewById(R.id.apellido); eEdad = (EditText)findViewById(R.id.edad); tVer = (TextView)findViewById(R.id.tver); } public void Insertar(View v){
String marca = eNombre.getText().toString(); String ram = eApellido.getText().toString(); String procesador = eEdad.getText().toString(); Compus p = new Compus(Pricipal.this); p.abrirSqlite(); p.insertar(marca, ram, procesador); p.cerrarSqlite();
} public void Ver(View v){ Compus p = new Compus(Pricipal.this); p.abrirSqlite(); String datos=p.ver(); p.cerrarSqlite(); tVer.setText(datos); }
public void Borrar(View v){Compus p = new Compus(Pricipal.this);
p.abrirSqlite(); p.elimina(idm); p.cerrarSqlite(); Toast.makeText(this,"Registro eliminado id="+idm,
Toast.LENGTH_LONG).show(); limpiar(); }
public void limpiar(){ eApellido.setText("");
eEdad.setText(""); eNombre.setText(""); id.setText(""); tVer.setText(""); } public void Modificar(View v){
String marca = eNombre.getText().toString(); String ram = eApellido.getText().toString(); String procesador = eEdad.getText().toString(); Compus p = new Compus(Pricipal.this);
p.abrirSqlite(); p.modificar(idm, marca, ram, procesador); limpiar(); p.cerrarSqlite(); }
public void Buscar(View v){
if(id.length()==0){ Toast.makeText(this,"Introduce ID",
Toast.LENGTH_LONG).show(); }else{ Compus p = new Compus(Pricipal.this); int i=Integer.parseInt(id.getText().toString()); p.abrirSqlite(); if(p.consultar(i)==false){ Toast.makeText(this,"Registro no encontrado",
Toast.LENGTH_LONG).show(); } idm=p.getId(); eNombre.setText(""+p.getMarca()); eApellido.setText(""+p.getRam()); eEdad.setText(""+p.getProcesador()); p.cerrarSqlite(); } }
}
Ahora manejamos el Manual de una manera más complicada, te doy lo básico y tú tienes que seguir con el código, que está muy fácil de entender. Te dejo el funcionamiento.
LISTVIEW
1.-En el layout colocamos un ImageView, después un LinearLayout vertical y dentro de este dos TextView. El código es el siguiente.
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="horizontal" >
<ImageViewandroid:id="@+id/imageView_imagen"android:layout_width="80dp"android:layout_height="80dp"android:adjustViewBounds="true"android:scaleType="fitXY"android:contentDescription = "Descripción del contenido de la imagen" android:src="@android:drawable/ic_menu_gallery" />
<LinearLayoutandroid:layout_width="fill_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical" >
<TextViewandroid:id="@+id/textView_superior"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text = "Large Text" android:textAppearance="?android:attr/textAppearanceLarge" />
<TextViewandroid:id="@+id/textView_inferior"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text = "Small Text" android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
</LinearLayout>
2.-En el código java declaramos nuestras variables como normalmente lo hacemos y agregamos el ListActivity.
3.-Simulamos que extraemos el contenido de una base de datos.
4.-Lo insertamos en una BD.
El código es el siguiente:
package com.wero.listview;
import android.app.ListActivity;
import android.database.MatrixCursor;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class EntradaActivity extends ListActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//Simulamos que extraemos los datos de la base de datos a un cursor
String[] columnasBD = new String[] {"_id", "imagen", "textoSuperior", "textoInferior"};
MatrixCursor cursor = new MatrixCursor(columnasBD);
cursor.addRow(new Object[] {"0", R.drawable.im_buho, "BUHO", "Búho es el nombre común de aves de la familia Strigidae, del orden de las estrigiformes o aves rapaces nocturnas."});
cursor.addRow(new Object[] {"1", R.drawable.im_colibri, "COLIBRÍ", "Los troquilinos (Trochilinae) son una subfamilia de aves apodiformes de la familia Trochilidae, conocidas vulgarmente como colibríes, quindes, tucusitos, picaflores, chupamirtos, chuparrosas, huichichiquis (idioma nahuatl), mainumby (idioma guaraní) o guanumby."});
cursor.addRow(new Object[] {"2", R.drawable.im_cuervo, "CUERVO", "El cuervo común (Corvus corax) es una especie de ave paseriforme de la familia de los córvidos (Corvidae)."});
cursor.addRow(new Object[] {"3", R.drawable.im_flamenco, "FLAMENCO", "Los fenicopteriformes (Phoenicopteriformes), los cuales reciben el nombre vulgar de flamencos, son un orden de aves neognatas, con un único género viviente: Phoenicopterus."});
cursor.addRow(new Object[] {"4", R.drawable.im_kiwi, "KIWI", "Los kiwis (Apterix, gr. 'sin alas') son un género de aves paleognatas compuesto por cinco especies endémicas de Nueva Zelanda.1 2 Son aves no voladoras pequeñas, aproximadamente del tamaño de una gallina."});
cursor.addRow(new Object[] {"5", R.drawable.im_loro, "LORO", "Las Psitácidas (Psittacidae) son una familia de aves psitaciformes llamadas comúnmente loros o papagayos, e incluye a los guacamayos, las cotorras, los periquitos, los agapornis y formas afines."});
//Añadimos los datos al Adapter y le indicamos donde dibujar cada dato en la fila del Layout
String[] desdeEstasColumnas = {"imagen", "textoSuperior", "textoInferior"};
int[] aEstasViews = {R.id.imageView_imagen, R.id.textView_superior, R.id.textView_inferior};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.entrada, cursor, desdeEstasColumnas, aEstasViews, 0);
ListView listado = getListView();
listado.setAdapter(adapter);
}
@Override
public void onListItemClick(ListView lista, View view, int posicion, long id) {
// Hacer algo cuando un elemento de la lista es seleccionado
TextView textoTitulo = (TextView) view.findViewById(R.id.textView_superior);
CharSequence texto = "Seleccionado: " + textoTitulo.getText();
Toast.makeText(getApplicationContext(), texto, Toast.LENGTH_LONG).show();
}
}
Como veras es muy sencilla y nos ayuda a poder visualizar datos, estos a simple vista. Resultado:
MENU
1.-En el layout lo único que necesitaremos es un TextView.
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="#ffffbb">
<TextViewandroid:id="@+id/textView"android:textColor="#000000"android:textSize="24sp"
android:layout_width="fill_parent" android:layout_height="wrap_content" android:text = "Una aplicación con menú. \n Pulse la tecla MENU y seleccione las opciones \n" />
</LinearLayout>
2.- En el java, debajo del Activity se crean nuevas variables de tipoTextView y LinearLayout, después e declaran las variables debajo del onCreate.
3.-Ya debajo del onCreateOptionsMenu se declaran las opciones del menú que se creara al igual que sus nombres e iconos de los mismos.
4.-Despues en el onOptionsItemSelected se crea una variable de tipo int para los id de la opción del menú que se ha seleccionado, seguido de las condiciones que conllevan cada uno de estos id y las acciones que realizarán una vez seleccionados.
El código es el siguiente:
import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.TextView;
public class MenusActivity extends Activity {
TextView tv;/** Called when the activity is first created. */
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tv=(TextView) findViewById(R.id.textView); }
@Override public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu); MenuItem item1= menu.add(0,1,1,"Opcion 1"); MenuItem item2= menu.add(0,2,2,"Opcion 2"); MenuItem item3= menu.add(0,3,3,"Opcion 3"); MenuItem item4= menu.add(0,4,4,"Opcion 4"); MenuItem item5= menu.add(0,5,5,"Opcion 5"); MenuItem item6= menu.add(0,6,6,"Opcion 6"); MenuItem item7= menu.add(0,7,7,"Opcion 7"); MenuItem item8= menu.add(0,8,8,"Opcion 8");
item1.setIcon(R.drawable.ic_launcher); item2.setIcon(R.drawable.ic_launcher); item3.setIcon(R.drawable.ic_launcher); return true; } @Override public boolean onOptionsItemSelected(MenuItem item){
int id= item.getItemId(); tv.append("\n Ha pulsado la opcion "+id); return true;
} }
Es muy sencillo hacerla, y esto tiene diferentes usos pero ya dependerá de cada quien como lo implementara.
TABHOST
1.-Insertamos el TABHOST desde la parte gráfica y nos ahorra casi todo el trabajo.
2.-Localizamos todos los tabs, y dentro de ellos colocamos todo lo que queramos que se visualice.
Este sería el código:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >
<TabHost android:id="@android:id/tabhost" android:layout_width="match_parent" android:layout_height="match_parent" >
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >
<TabWidget android:id="@android:id/tabs" android:layout_width="match_parent" android:layout_height="wrap_content" > </TabWidget>
<FrameLayout android:id="@android:id/tabcontent" android:layout_width="match_parent" android:layout_height="match_parent" >
<LinearLayout android:id="@+id/tab1"
android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >
<TextView android:id="@+id/texto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text = "Actualmente no has tenido llamadas" /> </LinearLayout> <LinearLayout android:id="@+id/tab2" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <TextView
android:id = "@+id/texto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text = "No has iniciado ninguna conversacion" /> </LinearLayout> <LinearLayout android:id="@+id/tab3" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" >
<TextView android:id="@+id/contacto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#04E100" android:textSize="60sp" android:textStyle="italic" android:text = "Lo sentimos no tienes contactos, agrega a alguien para iniciar una conversacion" />
</LinearLayout> </FrameLayout> </LinearLayout> </TabHost>
</LinearLayout>
3.-En java enlazamos con el layout y colocamos que trabajaremos con TABHOST.4.-Insertamos el código que nos dará el nombre a la pestaña, y su id.El código quedaría así:package com.wero.whatsapps;
import android.os.Bundle;import android.app.Activity;import android.view.*;import android.widget.*;import android.widget.TabHost.TabSpec;public class Wa extends Activity{TabHost tabHost;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_wa);tabHost=(TabHost) findViewById(android.R.id.tabhost);
tabHost.setup();TabSpec ts1=tabHost.newTabSpec("tab1");ts1.setIndicator("Llamadas");ts1.setContent(R.id.tab1);
tabHost.addTab(ts1);
tabHost.setup();TabSpec ts2=tabHost.newTabSpec("tab2");ts2.setIndicator("Conversaciones");ts2.setContent(R.id.tab2);tabHost.addTab(ts2);
tabHost.setup();TabSpec ts3=tabHost.newTabSpec("tab3");ts3.setIndicator("Contactos");ts3.setContent(R.id.tab3);tabHost.addTab(ts3);
}
}
La aplicación final es la siguiente:
ACELEROMETRO
1.-tenemos el LinearLayout principal con orientación vertical y dentro tres TextView mismos que nos mostraran los datos obtenidos por el sensor. La posición x, la posición y la posición z.
2.-Por ultimo tenemos un ImageView por que la aplicación mostrara una imagen por cada posición en un número determinado en ellas, cerramos el linear y el código quedará así.
<LinearLayout 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" android:background="#FFF" android:orientation="vertical" tools:context=".Acelerometro" >
<TextView android:id="@+id/posisionx" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="10dp" android:layout_weight="1" android:gravity="center" android:text="X" android:textColor="#000" android:textSize="50sp" />
<TextView android:id="@+id/posisiony" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="10dp" android:layout_weight="1" android:gravity="center" android:text="Y" android:textColor="#000" android:textSize="50sp"/>
<TextView android:id="@+id/posisionz" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="10dp" android:layout_weight="1" android:gravity="center" android:text="Z" android:textColor="#000" android:textSize="50sp" />
</LinearLayout>
3.-En el código java primero tenemos las librerías y aquí agregamos dos para que funcione el sensor del acelerómetro.
4.-Declaramos el método sensoreventlistener para que este funcione y también el ImageView, TextView y el sensor.
5.-Despues lo enlazamos con el archivo xml.
6.-Se crean 3 procesos, OnResume, OnPause.
7.-Despues el proceso de mostrar un color dependiendo la posición.
8.-Se toma el valor del sensor y se muestra en el TextView, así por cada posición x, y, z y con la condición de if se da un valor predeterminado por posición y así mostrara la imagen dependiendo del número que obtenga el sensor en la posición.
El código quedará así:package com.wero.acelerometro;
import java.util.List;
import android.app.Activity;import android.content.pm.ActivityInfo;import android.graphics.Color;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.os.Bundle;import android.widget.TextView;import android.widget.Toast;
public class Acelerometro extends Activity implements SensorEventListener {
TextView posicionx,posiciony,posicionz;private Sensor acelerometro;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_acelerometro);
posicionx= (TextView) findViewById(R.id.posisionx);posiciony= (TextView) findViewById(R.id.posisiony);posicionz= (TextView) findViewById(R.id.posisionz);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
protected void onResume() {super.onResume();
SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE);
List<Sensor> sensors = sm.getSensorList(Sensor.TYPE_ACCELEROMETER);
if (sensors.size() > 0) {
sm.registerListener(this, sensors.get(0),SensorManager.SENSOR_DELAY_GAME);
}}
protected void onPause() {SensorManager mSensorManager = (SensorManager)
getSystemService(SENSOR_SERVICE);mSensorManager.unregisterListener(this, acelerometro);super.onPause();
}
protected void onStop() {SensorManager mSensorManager = (SensorManager)
getSystemService(SENSOR_SERVICE);mSensorManager.unregisterListener(this, acelerometro);super.onStop();
}
@Overridepublic void onSensorChanged(SensorEvent event) {
float xfondo=event.values[SensorManager.DATA_X];float yfondo=event.values[SensorManager.DATA_Y];float zfondo=event.values[SensorManager.DATA_Z];
if(xfondo<9.6){posicionx.setBackgroundColor(Color.TRANSPARENT);
posicionx.setText(null);}if(yfondo<9.6){
posiciony.setBackgroundColor(Color.TRANSPARENT);posiciony.setText(null);
}if(zfondo<9.6){
posicionz.setBackgroundColor(Color.TRANSPARENT);posicionz.setText(null);
}
if(xfondo>=9.6){posicionx.setBackgroundColor(Color.CYAN);posicionx.setText("Celular moviendose en x");
}
if(xfondo<9.6){posicionx.setBackgroundResource(R.drawable.blanco);
}
if(yfondo>=9.6){posiciony.setBackgroundColor(Color.YELLOW);posiciony.setText("Celular moviendose en y");
}if(yfondo<9.6){
posiciony.setBackgroundResource(R.drawable.blanco);}
if(zfondo>=9.6){posicionz.setBackgroundColor(Color.MAGENTA);posicionz.setText("Celular moviendose en z");
}if(zfondo<9.6){
posicionz.setBackgroundResource(R.drawable.blanco);
}}
@Overridepublic void onAccuracyChanged(Sensor arg0, int arg1) {
// TODO Auto-generated method stub
}
}Así es como nos adentramos a algo más elaborado, pero esta función sirve demasiado y con buena creatividad puede surgir algo muy bueno. Aplicación final:
CANVAS1.-Creamos un nuevo proyecto.2.- En el archivo XML no alteraremos nada y quedara como esta por defecto.3.-Creamos dos archivos java, se llamaran igual, la única diferencia es que uno tendrá extra View.4.- Después de crearlos vamos al java principal y ponemos el siguiente código que hará que en pantalla se muestre el segundo java.Código:package com.example.drawing;
import android.app.Activity;import android.os.Bundle;
public class Drawing extends Activity{ protected void onCreate(Bundle paramBundle) { super.onCreate(paramBundle); setContentView(new DrawinView(this)); }}5.-Nos pasamos al segundo java, agregamos los siguientes métodos y librerías para ahí poder dibujar.6.-Definimos un Paint para utilizar los colores del sistema y ponemos canvas para comenzar a dibujar.Código:import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.util.AttributeSet;import android.view.View;
public class DibujarView extends View
{ Paint paint = new Paint();
public DibujarView(Context paramContext) { super(paramContext); }
public DibujarView(Context paramContext, AttributeSet paramAttributeSet) { super(paramContext, paramAttributeSet); }
public DibujarView(Context paramContext, AttributeSet paramAttributeSet, int paramInt) { super(paramContext, paramAttributeSet, paramInt); }
protected void onDraw(Canvas paramCanvas) { super.onDraw(paramCanvas); this.paint.setColor(-65536); paramCanvas.drawCircle(150.0F, 150.0F, 100.0F, this.paint); this.paint.setColor(-16711936); paramCanvas.drawRect(30.0F, 20.0F, 170.0F, 400.0F, this.paint); this.paint.setColor(-256); paramCanvas.drawRect(60.0F, 140.0F, 90.0F, 90.0F, this.paint); this.paint.setColor(-16776961); paramCanvas.drawRect(120.0F, 250.0F, 60.0F, 190.0F, this.paint); this.paint.setColor(-256); paramCanvas.drawRect(130.0F, 150.0F, 100.0F, 90.0F, this.paint); this.paint.setColor(-16777216); paramCanvas.drawRect(80.0F, 180.0F, 100.0F, 110.0F, this.paint);
}}En android podemos llevarnos bastante tiempo y nunca terminaremos de hacer algo nuevo, es sencillo hacer una aplicación con canvas solo es tener imaginación.Resultado:
GATO1.-Creamos un proyecto nuevo, y buscamos la carpeta en que se encuentra.2.-La abrimos y buscamos la carpeta res.3.-Después nos vamos a la carpeta drawable-mdpi.4.-En esta carpeta metemos nuestras dos imágenes de gato y ratón que utilizaremos.5.-Nos vamos al eclipse y vamos al archivo XML.6.-Quitamos los elementos que no nos sirven.7.-Transformamos a LinearLayout.8.-Agregamos tres LinearLayout con 3 ImageView Cada uno. 9.-Ponemos text view para ver nuestro progreso en el juego.CODIGO<LinearLayout 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"android:background="#fff"android:orientation="vertical"tools:context=".MainActivity" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight=".85"android:orientation="horizontal" >
<ImageViewandroid:id="@+id/uno"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight= "1" android:layout_margin="5sp"android:background="#cccccc"/>
<ImageViewandroid:id="@+id/dos"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:layout_margin="5sp"android:background="#cccccc" />
<ImageViewandroid:id="@+id/tres"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:layout_margin="5sp"android:background="#cccccc"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight=".85"android:orientation="horizontal" >
<ImageViewandroid:id="@+id/cuatro"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight= "1" android:layout_margin="5sp"android:background="#cccccc"/>
<ImageViewandroid:id="@+id/cinco"android:layout_width="match_parent"android:layout_height="match_parent"
android:layout_weight="1"android:layout_margin="5sp"android:background="#cccccc"/>
<ImageViewandroid:id="@+id/seis"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:layout_margin="5sp"android:background="#cccccc"/></LinearLayout>
<LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight=".85"android:orientation="horizontal" >
<ImageViewandroid:id="@+id/siete"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight= "1" android:layout_margin="5sp"android:background="#cccccc"/>
<ImageViewandroid:id="@+id/ocho"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:layout_margin="5sp"android:background="#cccccc"/>
<ImageViewandroid:id="@+id/nueve"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:layout_margin="5sp"android:background="#cccccc"/></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:orientation="horizontal" >
<TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight= "1" android:text= "Jugador: " android:textSize="20sp" />
<TextViewandroid:id="@+id/jugador"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:text= "0" android:textSize="20sp" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:orientation="horizontal" >
<TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight= "1" android:text= "CPU: " android:textSize="20sp" />
<TextViewandroid:id="@+id/cpu"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:text= "0" android:textSize="20sp" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:orientation="horizontal" >
<TextViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight= "1" android:text= "Empates: " android:textSize="20sp" />
<TextViewandroid:id="@+id/empates"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_weight="1"android:text= "0" android:textSize="20sp" />
</LinearLayout>
</LinearLayout>
10.-Nos vamos al archivo java.11.-Agregamos las librerías que utilizaremos.12.-Agregamos algunas variables que utilizaremos.13.-Las definimos y agregamos el método OnClick. 14.-Dentro del método OnClick ponemos un switch para ver qué imagen selecciona el usuario y agregamos dos métodos propios aparte.15.-Agregamos todos los ImageView.16-El método ChecarSiGana es para verificar si el usuario o el CPU han ganado el juego y solo hay 8 formas posibles de ganar, entonces se declara si uno u otro ha ganado y se define una condición.17.-En el método anterior se utiliza otro método que es para borrar todo el tablero. 18.-Empezar el juego de nuevo.19.-En el otro método que agregamos ponemos que tire el CPU de forma aleatoria y entonces se coloque una imagen en el ImageView que se escogió.20.-Cuando gana el usuario entonces se pone en el TextView un número mayor y pasa lo mismo cuando gana el CPU y cuando hay un empate.Te dejo el código:
import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.view.View;import android.view.View.OnClickListener;import android.widget.ImageView;import android.widget.TextView;import android.widget.Toast;
public class MainActivity extends Activity implements OnClickListener {int gato[] = new int[9];boolean ganaUsuario = false, ganaSmartPhone = false, empate = false;int aleatorio, gusuario = 0, gcpu = 0, empates = 0, tiros = 0;ImageView uno, dos, tres, cuatro, cinco, seis, siete, ocho, nueve;TextView gusu, gSmart, em;
@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);gusu = (TextView) findViewById(R.id.jugador);gSmart = (TextView) findViewById(R.id.cpu);em = (TextView) findViewById(R.id.empates);uno = (ImageView) findViewById(R.id.uno);dos = (ImageView) findViewById(R.id.dos);tres = (ImageView) findViewById(R.id.tres);cuatro = (ImageView) findViewById(R.id.cuatro);cinco = (ImageView) findViewById(R.id.cinco);seis = (ImageView) findViewById(R.id.seis);siete = (ImageView) findViewById(R.id.siete);ocho = (ImageView) findViewById(R.id.ocho);nueve = (ImageView) findViewById(R.id.nueve);uno.setOnClickListener(this);dos.setOnClickListener(this);tres.setOnClickListener(this);cuatro.setOnClickListener(this);cinco.setOnClickListener(this);seis.setOnClickListener(this);siete.setOnClickListener(this);ocho.setOnClickListener(this);nueve.setOnClickListener(this);for (int i = 0; i <= 8; i++) {
gato[i] = 0;}}
@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.uno:if (gato[0] == 0) {uno.setImageResource(R.drawable.g);tiros = tiros + 1;gato[0] = 1;ChecarSiGana();TeTocaSmartPhone();}break;case R.id.dos:if (gato[1] == 0) {dos.setImageResource(R.drawable.g);gato[1] = 1;tiros = tiros + 1;ChecarSiGana();TeTocaSmartPhone();}break;case R.id.tres:if (gato[2] == 0) {tres.setImageResource(R.drawable.g);gato[2] = 1;tiros = tiros + 1;ChecarSiGana();TeTocaSmartPhone();}break;case R.id.cuatro:
if (gato[3] == 0) {cuatro.setImageResource(R.drawable.g);gato[3] = 1;tiros = tiros + 1;ChecarSiGana();TeTocaSmartPhone();}break;case R.id.cinco:if (gato[4] == 0) {cinco.setImageResource(R.drawable.g);gato[4] = 1;tiros = tiros + 1;ChecarSiGana();TeTocaSmartPhone();}break;case R.id.seis:if (gato[5] == 0) {seis.setImageResource(R.drawable.g);gato[5] = 1;tiros = tiros + 1;ChecarSiGana();TeTocaSmartPhone();}break;case R.id.siete:if (gato[6] == 0) {siete.setImageResource(R.drawable.g);gato[6] = 1;tiros = tiros + 1;ChecarSiGana();TeTocaSmartPhone();}break;
case R.id.ocho:if (gato[7] == 0) {ocho.setImageResource(R.drawable.g);gato[7] = 1;tiros = tiros + 1;ChecarSiGana();TeTocaSmartPhone();}break;case R.id.nueve:if (gato[8] == 0) {nueve.setImageResource(R.drawable.g);gato[8] = 1;tiros = tiros + 1;ChecarSiGana();TeTocaSmartPhone();}break;}}
private void TeTocaSmartPhone() {if (ganaUsuario == false) {aleatorio = (int) (8 * Math.random()) + 1;if (gato[aleatorio] == 0) {switch (aleatorio) {case 0:uno.setImageResource(R.drawable.r);tiros = tiros + 1;break;case 1:dos.setImageResource(R.drawable.r);tiros = tiros + 1;break;case 2:
tres.setImageResource(R.drawable.r);tiros = tiros + 1;break;case 3:cuatro.setImageResource(R.drawable.r);tiros = tiros + 1;break;case 4:cinco.setImageResource(R.drawable.r);tiros = tiros + 1;break;case 5:seis.setImageResource(R.drawable.r);tiros = tiros + 1;break;case 6:siete.setImageResource(R.drawable.r);tiros = tiros + 1;break;case 7:ocho.setImageResource(R.drawable.r);tiros = tiros + 1;break;case 8:nueve.setImageResource(R.drawable.r);tiros = tiros + 1;break;}gato[aleatorio] = 2;ChecarSiGana();} else {TeTocaSmartPhone();}}
}
private void ChecarSiGana() {
if (gato[0] == 1 && gato[1] == 1 && gato[2] == 1)ganaUsuario = true;else if (gato[3] == 1 && gato[4] == 1 && gato[5] == 1)ganaUsuario = true;else if (gato[6] == 1 && gato[7] == 1 && gato[8] == 1)ganaUsuario = true;else if (gato[0] == 1 && gato[3] == 1 && gato[6] == 1)ganaUsuario = true;else if (gato[1] == 1 && gato[4] == 1 && gato[7] == 1)ganaUsuario = true;else if (gato[2] == 1 && gato[5] == 1 && gato[8] == 1)ganaUsuario = true;else if (gato[0] == 1 && gato[4] == 1 && gato[8] == 1)ganaUsuario = true;else if (gato[2] == 1 && gato[4] == 1 && gato[6] == 1)ganaUsuario = true;
else if (gato[0] == 2 && gato[1] == 2 && gato[2] == 2)ganaSmartPhone = true;else if (gato[3] == 2 && gato[4] == 2 && gato[5] == 2)ganaSmartPhone = true;else if (gato[6] == 2 && gato[7] == 2 && gato[8] == 2)ganaSmartPhone = true;else if (gato[0] == 2 && gato[3] == 2 && gato[6] == 2)ganaSmartPhone = true;else if (gato[1] == 2 && gato[4] == 2 && gato[7] == 2)ganaSmartPhone = true;else if (gato[2] == 2 && gato[5] == 2 && gato[8] == 2)ganaSmartPhone = true;else if (gato[0] == 2 && gato[4] == 2 && gato[8] == 2)ganaSmartPhone = true;
else if (gato[2] == 2 && gato[4] == 2 && gato[6] == 2)ganaSmartPhone = true;else {if (tiros == 9 & ganaSmartPhone == false & ganaUsuario == false) {empate = true;}}if (ganaUsuario == true) {Toast m = Toast.makeText(this, "Haz ganado", Toast.LENGTH_SHORT);gusuario = gusuario + 1;gusu.setText("" + gusuario);gSmart.setText("" + gcpu);em.setText("" + empates);m.show();borrar();}if (ganaSmartPhone == true) {Toast m = Toast.makeText(this, "Te ha ganado el Super SmarthPhone",Toast.LENGTH_SHORT);gcpu = gcpu + 1;gusu.setText("" + gusuario);gSmart.setText("" + gcpu);em.setText("" + empates);m.show();borrar();}if (empate == true) {Toast m = Toast.makeText(this, "Empate", Toast.LENGTH_SHORT);empates = empates + 1;gusu.setText("" + gusuario);gSmart.setText("" + gcpu);em.setText("" + empates);m.show();
borrar();}}
private void borrar() {Handler handler = new Handler();handler.postDelayed(new Runnable() {
public void run() {uno.setImageDrawable(null);dos.setImageDrawable(null);tres.setImageDrawable(null);cuatro.setImageDrawable(null);cinco.setImageDrawable(null);seis.setImageDrawable(null);siete.setImageDrawable(null);ocho.setImageDrawable(null);nueve.setImageDrawable(null);ganaSmartPhone = false;ganaUsuario = false;tiros = 0;for (int i = 0; i <= 8; i++) {gato[i] = 0;}}}, 200);}
}Es muy entretenida la programación y más cuando se trata de jugar tus propios juegos, entonces pues que mejor que esto.Captura del juego:
CALCULADORA1.-En el archivo xml tenemos como primer elemento nuestro LinearLayout con la orientacion vertical.2.-Creamos otro con la orientacion horizontal.3.-Despues otro con orientacion vertical.4.-Dentro de este un TextView con el id de anterior. 5.-Despues otro TextView donde se mostrara el numero y se cierra el LinearLayout.6.-Afuera de este creamos un boton mismo que nos servira para borrar los numeros, se cierra el LinearLayout y se crea uno nuevo con orientacion horizontal.7.-Dentro del LinearLayout tenemos los botones de nuestra calculadora por linea, en la primera linea tenemos los numeros 7, 8, 9, + y borrar. 8.-Se cierra el LinearLayout y se crea otro con la orientacion horizontal para la siguiente linea de numeros.9.-En esta linea insertamos los numeros correspondientes a 4, 5, 6, - y raiz.10.-Despues se cierra el LinearLayout y se crea otro para la siguiente linea (orientacion horizontal). 11.-Dentro de este LinearLayout tenemos los botones de 1, 2, 3, * y factorial.12.-Se cierra el LinearLayout y se crea uno nuevo para la linea siguiente. 13.-Una vez creado nuestro LinearLayout, insertamos en el los botones correspondientes a 0, pi, el punto, entre y modulo.14.-Una vez hecho esto se cierra el LinearLayout y se crea el de la linea siguiente. 14.-Dentro del LinearLayout que acabamos de crear tenemos la última linea de botones y es la correspondiente a uno entre, xy e igual. 15.-Por ultimo se cierran los LinearLayout y agregamos las imágenes a la carpeta drawable mdpi.Código:<LinearLayout 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" android:background="#000000" android:orientation="vertical" >
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0.85" android:background="#000000" android:gravity="center" android:orientation="horizontal" >
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight = "0.25" android:background="#000000" android:gravity="center" android:orientation="vertical" >
<TextView android:id="@+id/anterior" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight = ".25" android:background="#000000" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:gravity="center" android:text="" android:textAlignment="textStart" android:textColor="#FFFFFF" android:textSize="30sp" />
<TextView android:id="@+id/num" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight=".25" android:background="#000000" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:gravity="center" android:text="" android:textAlignment="textStart" android:textColor="#FFFFFF" android:textSize="30sp" /> </LinearLayout>
<Button android:id="@+id/back" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/rojo"
android:gravity="center" android:text = "Del" android:textColor="#FFFFFF" android:textSize="20sp" android:textStyle="bold" /> </LinearLayout>
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0.85" android:background="#000000" android:gravity="center" android:orientation="horizontal" >
<Button android:id="@+id/siete" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight = "1" android:background="@drawable/azul" android:gravity="center" android:text = "7" android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" />
<Button android:id="@+id/ocho" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/azul" android:gravity="center" android:text = "8" android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" />
<Button android:id="@+id/nueve" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/azul" android:gravity="center" android:text = "9" android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" />
<Button android:id="@+id/mas" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/rojof"
android:gravity="center" android:text = "+" android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" />
<Button android:id="@+id/borrar" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/verde" android:gravity="center" android:text = "Ac" android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" /> </LinearLayout>
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0.85" android:background="#000000" android:gravity="center" android:orientation="horizontal" >
<Button android:id="@+id/cuatro" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight = "1" android:background="@drawable/azul" android:gravity="center" android:text = "4" android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" />
<Button android:id="@+id/cinco" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/azul" android:gravity="center" android:text = "5" android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" />
<Button android:id="@+id/seis" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/azul"
android:gravity="center" android:text = "6" android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" />
<Button android:id="@+id/menos" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/rojof" android:gravity="center" android:text = "-" android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" />
<Button android:id="@+id/raiz" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/rojof" android:gravity="center" android:text = "√" android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" /> </LinearLayout>
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0.85" android:background="#000000" android:gravity="center" android:orientation="horizontal" >
<Button android:id="@+id/uno" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight = "1" android:background="@drawable/azul" android:gravity="center" android:text = "1" android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" />
<Button android:id="@+id/dos" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/azul"
android:gravity="center" android:text = "2" android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" />
<Button android:id="@+id/tres" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/azul" android:gravity="center" android:text = "3" android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" />
<Button android:id="@+id/por" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/rojof" android:gravity="center" android:text = "*" android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" />
<Button android:id="@+id/factorial" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/rojof" android:gravity="center" android:text = "!" android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" /> </LinearLayout>
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0.85" android:background="#000000" android:gravity="center" android:orientation="horizontal" >
<Button android:id="@+id/cero" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight = "1" android:background="@drawable/azul"
android:gravity="center" android:text = "0" android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" />
<Button android:id="@+id/punto" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/azul" android:gravity="center" android:text = "." android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" />
<Button android:id="@+id/pi" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/rojof" android:gravity="center" android:text = " π " android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" />
<Button android:id="@+id/entre" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/rojof" android:gravity="center" android:text = "÷" android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" />
<Button android:id="@+id/modulo" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/rojof" android:gravity="center" android:text = "%" android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" /> </LinearLayout>
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_weight="0.85" android:background="#000000" android:gravity="center" android:orientation="horizontal" >
<Button android:id="@+id/unoentre" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight = "1" android:background="@drawable/rojof" android:gravity="center" android:text = "1/X" android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" />
<Button android:id="@+id/xy" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/rojof" android:gravity="center" android:text = "x^y" android:textColor="#FFFFFF" android:textSize="30sp" android:textStyle="bold" />
<Button android:id="@+id/igual" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="@drawable/verde" android:gravity="center" android:text = "=" android:textColor="#FFFFFF" android:textSize="60sp" android:textStyle="bold" /> </LinearLayout></LinearLayout>
16.-Primeramente tenemos en nuestras librerias el metodo OnClick Listener.17.-Tambien hay que implementarlo en el Public Class y de ahí pasamos declarar nuestros views, 3 variables de tipo flotante, 1 de tipo entero y dos booleanos “p” e “igual”.18.-Despues enlazamos nuestros botones y cajas con el xml.
19.-Ya enlazados los views tenemos que ingresar el metodo OnClick para la accion de tocar la pantalla y los botones. 20.-Una vez hecho esto se empieza a crear el proceso de los botones, el primero es para deshabilitar los botones, el segundo es para habilitarlos y el tercero para validar que esten los numeros y no falta alguno. 21.-Despues esta la funcion para borrar donde simplemente se limpian las cajas y los casos para cada boton, la accion a cada uno de ellos. 22.-Una vez creados los procesos para cada boton se crean nuevos para el numero y el punto con las condiciones true y false, para habilitar y deshabilitar. 23.-Se cierra el ultimo que es el de punto se abre otro para el caso de borrar24.-Se utiliza el metodo de borrar y habilitar.25.-Despues de este esta el de back, o regresar. Este tiene un arreglo para tomar los valores y poder almacenarlos y regresar a ellos si se quiere. 26.-Despues tenemos el caso de pi, donde como es un valor definido solo se asigna.27.-Despues el de igual, o donde se obtiene el resultado. Aquí se muestra el resultado en el TextView de cada operación que nosotro elijamos. 28.-Despues tenemos el factorial y un proceso para redondear un número.Te dejo el Código.package com.wero.calcetym;
import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.*;
public class CalCetym extends Activity implements OnClickListener {TextView display, anterior;float resultado = 0, num1 = 0, num2 = 0;int contador = 0, o = 0;boolean p = false, igual = false, boton = false, presiono = false;Button mas, menos, por, entre, raiz, factorial, pi, xy, modulo,
unoentre;
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_cal_cetym);display = (TextView) findViewById(R.id.num);anterior = (TextView) findViewById(R.id.anterior);Button uno = (Button) findViewById(R.id.uno);Button dos = (Button) findViewById(R.id.dos);Button tres = (Button) findViewById(R.id.tres);Button cuatro = (Button) findViewById(R.id.cuatro);Button cinco = (Button) findViewById(R.id.cinco);Button seis = (Button) findViewById(R.id.seis);Button siete = (Button) findViewById(R.id.siete);Button ocho = (Button) findViewById(R.id.ocho);Button nueve = (Button) findViewById(R.id.nueve);Button cero = (Button) findViewById(R.id.cero);Button punto = (Button) findViewById(R.id.punto);mas = (Button) findViewById(R.id.mas);menos = (Button) findViewById(R.id.menos);por = (Button) findViewById(R.id.por);entre = (Button) findViewById(R.id.entre);raiz = (Button) findViewById(R.id.raiz);factorial = (Button) findViewById(R.id.factorial);Button borrar = (Button) findViewById(R.id.borrar);Button igual = (Button) findViewById(R.id.igual);Button back = (Button) findViewById(R.id.back);pi = (Button) findViewById(R.id.pi);xy = (Button) findViewById(R.id.xy);
modulo = (Button) findViewById(R.id.modulo);unoentre = (Button) findViewById(R.id.unoentre);uno.setOnClickListener(this);dos.setOnClickListener(this);tres.setOnClickListener(this);cuatro.setOnClickListener(this);cinco.setOnClickListener(this);seis.setOnClickListener(this);siete.setOnClickListener(this);ocho.setOnClickListener(this);nueve.setOnClickListener(this);cero.setOnClickListener(this);punto.setOnClickListener(this);mas.setOnClickListener(this);menos.setOnClickListener(this);por.setOnClickListener(this);entre.setOnClickListener(this);raiz.setOnClickListener(this);factorial.setOnClickListener(this);borrar.setOnClickListener(this);igual.setOnClickListener(this);back.setOnClickListener(this);pi.setOnClickListener(this);xy.setOnClickListener(this);modulo.setOnClickListener(this);unoentre.setOnClickListener(this);uno.setOnClickListener(this);
}public void deshabilitar(){
mas.setEnabled(false);menos.setEnabled(false);por.setEnabled(false);entre.setEnabled(false);raiz.setEnabled(false);factorial.setEnabled(false);
pi.setEnabled(false);xy.setEnabled(false);unoentre.setEnabled(false);modulo.setEnabled(false);
}public void habilitar(){
mas.setEnabled(true);menos.setEnabled(true);por.setEnabled(true);entre.setEnabled(true);raiz.setEnabled(true);factorial.setEnabled(true);pi.setEnabled(true);xy.setEnabled(true);unoentre.setEnabled(true);modulo.setEnabled(true);
}public boolean validar(){
if(display.getText().equals("")){Toast.makeText(this,"Falta Introducir
Numero",Toast.LENGTH_SHORT).show();return false;
}else{if(o==0){num1=Float.parseFloat(display.getText().toString());}else{num2=Float.parseFloat(display.getText().toString());}return true;
}}public void borrar(){
display.setText("");anterior.setText("");resultado=0;num1=0;num2=0;
}
@Overridepublic void onClick(View v) {switch(v.getId()){case R.id.xy:
if(validar()==true){if(igual==true){resultado=num1;igual=false;}else{resultado=0;}
anterior.setText(num1+"^");display.setText("");o=1;p=false;deshabilitar();
}break;
case R.id.modulo:if(validar()==true){if(igual==true){resultado=num1;igual=false;}else{resultado=0;}
anterior.setText(num1+"%");display.setText("");o=2;p=false;deshabilitar();
}break;
case R.id.mas:if(validar()==true){if(igual==true){resultado=num1;igual=false;}else{resultado=0;}
anterior.setText(num1+"+");display.setText("");o=3;p=false;deshabilitar();
}break;
case R.id.menos:if(validar()==true){
if(igual==true){resultado=num1;igual=false;}else{resultado=0;}anterior.setText(num1+"-");display.setText("");o=4;p=false;deshabilitar();
}break;
case R.id.por:if(validar()==true){if(igual==true){resultado=num1;igual=false;}else{resultado=0;}
anterior.setText(num1+"*");display.setText("");o=5;p=false;deshabilitar();
}break;
case R.id.entre:if(validar()==true){if(igual==true){resultado=num1;igual=false;}else{resultado=0;}
anterior.setText(num1+"/");display.setText("");o=6;p=false;deshabilitar();
}break;
case R.id.unoentre:if(validar()==true){
anterior.setText("1/"+num1);resultado=1/num1;display.setText(""+resultado);o=0;
}
break;case R.id.raiz:
if(validar()==true){anterior.setText("√"+num1);resultado=(float)Math.sqrt(num1);display.setText(""+resultado);o=0;
}break;
case R.id.factorial:if(validar()==true){
anterior.setText(num1+"!");resultado=factorial(num1);display.setText(""+resultado);o=0;
}break;
case R.id.uno:if(igual==true){borrar(); igual=false;
}display.append("1");break;
case R.id.dos:if(igual==true){borrar(); igual=false;
}display.append("2");break;
case R.id.tres:if(igual==true){borrar(); igual=false;
}display.append("3");break;
case R.id.cuatro:
if(igual==true){borrar(); igual=false;
}display.append("4");break;
case R.id.cinco:if(igual==true){borrar(); igual=false;
}display.append("5");break;
case R.id.seis:if(igual==true){borrar(); igual=false;
}display.append("6");break;
case R.id.siete:if(igual==true){borrar(); igual=false;
}display.append("7");break;
case R.id.ocho:if(igual==true){borrar(); igual=false;
}display.append("8");break;
case R.id.nueve:if(igual==true){borrar(); igual=false;
}display.append("9");break;
case R.id.cero:if(igual==true){borrar(); igual=false;
}display.append("0");break;
case R.id.punto:if(p==false && igual==false){
display.append(".");p=true;
}else{if(p==false){
if(resultado!=0){borrar();}display.append(".");p=false;igual=false;}
}break;
case R.id.borrar:borrar();
habilitar();break;
case R.id.back:String cad=display.getText().toString();
if(!cad.equals("")){char [] cadena=cad.toCharArray();String f="";for(int i=0;i<=cadena.length-2;i++){
f=f+cadena[1];}display.setText(f);
}else{Toast n=Toast.makeText(this,"No hay
Valores",Toast.LENGTH_SHORT);n.show();
resultado=0;habilitar();}
break;case R.id.pi:
resultado=(float)3.1416;display.setText("3.1416");break;
case R.id.igual:if(validar()==true){
switch(o){case 1:resultado=(float)Math.pow(num1, num2);break;case 2:resultado=num1%num2;break;case 3:resultado=num1+num2;break;case 4:resultado=num1-num2;break;case 5:resultado=num1*num2;break;case 6:resultado=num1/num2;break;}
}o=0;
p=false;num1=resultado;igual=true;habilitar();anterior.append(""+num2);display.setText(""+redondear(resultado));
break;}}
public float factorial(float num) {float fac=1;for(int i=1;i<=num;i++){
fac*=1;}return fac;
}public float redondear(float numero) {
return (float)Math.rint(numero*100000)/100000;}
}
SONIDOS ANIMALES1.-Crear nuestra interfaz con 4 LinearLayout, por consiguiente en c/u colocar 3 botones y con sus correspondientes imágenes de animales. 2.- Creamos nuestro código en Java.3.-Declaramos nuestros botones.4.-Después colocamos este código en cada track para un animal:sp = new SoundPool(8, AudioManager.STREAM_MUSIC, 0); caballo = sp.load(this, R.raw.a, 1);5.-Creamos un switch para colocar un case para cada animal: switch (v.getId()) { case R.id.uno: sp.play(caballo, 1, 1, 1, 0, 1); break; Esta aplicación es muy usada para colocar sonidos al presionar algo, por lo cual es importante conocerlo para hacer una App más llamativa.Código:import android.media.AudioManager;import android.media.SoundPool; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.*; import android.app.Activity; public class MainActivity extends Activity implements OnClickListener{ SoundPool sp; Button bt1, bt2, bt3, bt4, bt5, bt6, bt7, bt8; int caballo, canario, cerdo, gato, leon, oso, perro, vaca; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bt1 = (Button) findViewById(R.id.uno); bt2 = (Button) findViewById(R.id.dos); bt3 = (Button) findViewById(R.id.tres); bt4 = (Button) findViewById(R.id.cuatro); bt5 = (Button) findViewById(R.id.cinco);
bt6 = (Button) findViewById(R.id.seis);bt7 = (Button) findViewById(R.id.siete); bt8 = (Button) findViewById(R.id.ocho); bt1.setOnClickListener(this); bt2.setOnClickListener(this); bt3.setOnClickListener(this); bt4.setOnClickListener(this); bt5.setOnClickListener(this); bt6.setOnClickListener(this); bt7.setOnClickListener(this); bt8.setOnClickListener(this); sp = new SoundPool(8, AudioManager.STREAM_MUSIC, 0); caballo = sp.load(this, R.raw.a, 1); canario = sp.load(this, R.raw.b, 1); cerdo = sp.load(this, R.raw.c, 1); gato = sp.load(this, R.raw.d, 1); leon = sp.load(this, R.raw.e, 1); oso = sp.load(this, R.raw.f, 1); perro = sp.load(this, R.raw.g, 1); vaca = sp.load(this, R.raw.h, 1); } @Override public void onClick(View v) {switch (v.getId()) { case R.id.uno: sp.play(caballo, 1, 1, 1, 0, 1); break; case R.id.dos: sp.play(canario, 1, 1, 1, 0, 1); break; case R.id.tres: sp.play(cerdo, 1, 1, 1, 0, 1); break; case R.id.cuatro: sp.play(gato, 1, 1, 1, 0, 1); break; case R.id.cinco: sp.play(leon, 1, 1, 1, 0, 1); break; case R.id.seis: sp.play(oso, 1, 1, 1, 0, 1);
break; case R.id.siete: sp.play(perro, 1, 1, 1, 0, 1);break; case R.id.ocho: sp.play(vaca, 1, 1, 1, 0, 1); break; } } }En mi caso use las mismas imagines del gato:
VIDEOVIEW1.-Creamos un proyecto donde empezaremos con la aplicación.2.-En el archivo XML vamos a crear el display principal.3.-Crearemos un VideoView.4.-Agregamos un video en la carpeta llamada raw.Codigo:<LinearLayout 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" android:orientation="vertical" android:background="@drawable/lol"> <VideoView android:id="@+id/VideoView1" android:layout_width="fill_parent" android:layout_height="fill_parent"/> </LinearLayout>5.-En el código java agregamos el codigo que pongo a continuación y será todo.import android.os.Bundle; import android.app.Activity;import android.widget.MediaController; import android.widget.VideoView; public class Pos extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_pos); VideoView video = (VideoView) findViewById(R.id.VideoView1); Uri path = Uri.parse("android.resource://com.example.hola/"+ R.raw.COD); video.setVideoURI(path); video.setMediaController(new MediaController(this)); video.start();
video.requestFocus(); }}En esta aplicación nos ayuda cuando queremos accede a videos de manera más sencilla.Se verá así:
GIROSCOPIO
1.-En esta aplicación tenemos el LinearLayout principal y dentro un Button y un View2.-Se cierra el LinearLayout. CODIGO:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#09d000"> <Button android:layout_width="match_parent" android:layout_height="20px" android:background="#000000"/> <view android:layout_width="fill_parent" android:layout_height="wrap_content" class="com.example.pelota.PelotaDibujar" android:id="@+id/view"/>
</LinearLayout>
3.-Como el programa de acelerometro, el giroscopio tambien utiliza el sensor y tenemos que implementar el sensor event listener y algunas librerias relacionadas.4.-Se crean los 3 metodos como en el acelerometro, el OnPause, OnResume y OnStop.5.-Agregamos canvas para la pelotita.Los códigos serán estos:CODIGO 1:package com.example.pelota;
import android.os.Bundle;import android.view.*;import android.app.Activity;import android.content.pm.ActivityInfo;
public class Pelota extends Activity { PelotaDibujar dibujo; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.interfaz); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); }}
CODIGO 2:package com.example.pelota;
import android.content.Context;import android.graphics.*;import android.hardware.*;import android.os.Bundle;import android.util.AttributeSet;import android.util.DisplayMetrics;import android.view.*;import android.widget.Toast;
public class PelotaDibujar extends View implements SensorEventListener {
Paint pincel = new Paint();
int alto, ancho;int ejeX=0,ejeY=0,ejeZ1=0,ejeZ=0;String X,Y,Z;Context contexto;CharSequence texto="Perdite";int duracion=Toast.LENGTH_SHORT;
public PelotaDibujar(Context interfaz, AttributeSet atributos){
super(interfaz, atributos);
SensorManager smAdministrador = (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE); Sensor snsRotacion = smAdministrador.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); smAdministrador.registerListener(this, snsRotacion, SensorManager.SENSOR_DELAY_FASTEST); //Se obtienen las medidas de la pantalla Display pantalla = ((WindowManager) getContext() .getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); ancho = pantalla.getWidth(); alto = pantalla.getHeight(); setMinimumHeight(alto); setMinimumWidth(ancho);
}
@Override
public void onSensorChanged(SensorEvent cambio) {ejeX-=cambio.values[0];X=Float.toString(ejeX);
if (ejeX < 20){ejeX = 20;
}else if(ejeX > (ancho-20)){
ejeX = ancho-20;}ejeY+=cambio.values[1];Y=Float.toString(ejeY);
if (ejeY < 20){ejeY = 20;
}else if(ejeY > alto-60){
ejeY = alto-60;}
if (ejeX <= 30){ejeX = 30;if (ejeY>=80){
ejeY=80;if (ejeX > 150){
ejeX=150;
}}
} @Override public void onDraw(Canvas lienzo) {
pincel.setColor(Color.GRAY);lienzo.drawCircle(60, 60, 22, pincel);pincel.setColor(Color.GRAY);lienzo.drawCircle(420, 70, 22, pincel);pincel.setColor(Color.GRAY);lienzo.drawCircle(60, 670, 22, pincel);pincel.setColor(Color.GRAY);lienzo.drawCircle(420, 670, 22, pincel);
pincel.setColor(Color.RED);lienzo.drawCircle(ejeX+10, ejeY+10, 20, pincel);
if(ejeX>=29 && ejeX<=31 && ejeY>=29 && ejeY<=31){ejeX=30;ejeY=30;
}
pincel.setColor(Color.RED);lienzo.drawText("Eje 'X': "+X, 0, alto-75, pincel);
pincel.setColor(Color.GREEN);lienzo.drawText("Eje 'Y': "+Y, 0, alto-60, pincel);
pincel.setColor(Color.RED);lienzo.drawLine(10, 10, 10, 100, pincel);lienzo.drawLine(10, 100, 60, 100, pincel);
if(ejeX==60 && ejeY==60){pincel.setColor(Color.BLUE);lienzo.drawText("GANASTE", ancho-60, alto-45, pincel);
}
if(ejeX!=60 || ejeY!=60){invalidate();
} }
@Override public void onAccuracyChanged(Sensor sensor, int accuracy) { // TODO Auto-generated method stub }}Así es como vemos el funcionamiento de Giroscopio, es prácticamente la rotación.Así se ve la App:
NOTIFICACIONES1.-En el layout solo colocamos un Button.Código:<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" >
<Button android:id="@+id/botonNotificacion" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="@string/notificacion" />
</RelativeLayout>
2.-Implementamos el método OnClickListener.3.-En java declaramos el Button.4.-En el método OnClick creamos un Switch.5.-Despues usamos el ManagerNotification.El código es el siguiente:package mx.com.gm.notificaciones;
import android.app.Activity;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;
public class MainActivity extends Activity {
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button boton = (Button) findViewById(R.id.botonNotificacion); boton.setOnClickListener( new OnClickListener() {
public void onClick(View v) {NotificationManager manager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Notification notificacion = new Notification (android.R.drawable. stat_notify_more , "Notificación" , System. currentTimeMillis ()) ;
Intent intent = new Intent(MainActivity.this, MainActivity.class);
PendingIntent pIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
notificacion.setLatestEventInfo (MainActivity. this , "Titulo" , "Detalles" , pIntent) ;
manager.notify(0,notificacion);}
}); }
}
Cómo podemos ver lanzar una notificación es fácil, sólo es programarla con lo que queremos que nos sea lanzada.Resultado:
TOGGLEBUTTON1.-Creamos un proyecto donde empezaremos con la aplicación.2.- En el archivo XML vamos a crear el display principal.3.-Crearemos tres Togglebutton. Codigo:
<LinearLayout 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" android:orientation="vertical" tools:context=".MainActivity" > <LinearLayout android:id="@+id/fondo" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:background="#000000" android:gravity="center_horizontal" android:orientation="horizontal" > <ToggleButton android:id="@+id/toggleButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5sp" android:textOff="Uno Off" android:textOn="Uno On" /> <ToggleButton android:id="@+id/toggleButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5sp" android:textOff="Dos Off" android:textOn="Dos On" /> <ToggleButton android:id="@+id/toggleButton3"android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5sp" android:textOff="Tres Off" android:textOn="Tres On" /> </LinearLayout>
</LinearLayout>4.-En java relacionamos los códigos con el XML.5.-Hacemos que los ToggleButton tengan un color.6.-Colocamos que cuando se active losToggleButton se cambie el color de fondo. Codigo import android.os.Bundle; import android.app.Activity; import android.graphics.Color; import android.widget.CompoundButton; import android.widget.LinearLayout; import android.widget.ToggleButton; import android.widget.CompoundButton.OnCheckedChangeListener; public class MainActivity extends Activity implements OnCheckedChangeListener { ToggleButton uno, dos, tres; LinearLayout cont; String color = "", rj = "00", vr = "00", az = "00"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); uno = (ToggleButton) findViewById(R.id.toggleButton1); dos = (ToggleButton) findViewById(R.id.toggleButton2); tres = (ToggleButton) findViewById(R.id.toggleButton3); uno.setOnCheckedChangeListener(this); dos.setOnCheckedChangeListener(this); tres.setOnCheckedChangeListener(this); cont = (LinearLayout) findViewById(R.id.fondo); } @Override public void onCheckedChanged(CompoundButton v, boolean isCheked) {switch (v.getId()) { case R.id.toggleButton1: if (isCheked) {
rj = "FF"; color = "#" + rj + vr + az; cont.setBackgroundColor(Color.parseColor(color)); } else { rj = "00"; color = "#" + rj + vr + az; cont.setBackgroundColor(Color.parseColor(color)); } break; case R.id.toggleButton2: if (isCheked) { vr = "FF"; color = "#" + rj + vr + az; cont.setBackgroundColor(Color.parseColor(color)); } else { vr = "00"; color = "#" + rj + vr + az; cont.setBackgroundColor(Color.parseColor(color)); } break; case R.id.toggleButton3: if (isCheked) { az = "FF"; color = "#" + rj + vr + az; cont.setBackgroundColor(Color.parseColor(color)); } else { az = "00"; color = "#" + rj + vr + az;cont.setBackgroundColor(Color.parseColor(color)); } break; } } }Esta aplicación es util cuando queremos hacer combinaciones con algo, ya que podemos obtener diferentes resultados.Resultado:
CHECKBOX1.-Creamos el proyecto.
2.-Tenemos un LinearLayout con orientacion vertical.
3.-Creamos con orientacion horizontal.
4.-Creamos los CheckBox.
5.-Cerramos el LinearLayout y creamos otro nuevo con orientacion horizontal.
6.-Creamos otros tres CheckBox y lo cerramos.
7.-Despues insertamos un ImageView ya que al seleccionar alguna casilla este mostrara una imagen.
Codigo:
8.-Nos dirigimos a java.
9.-En las librerias implementamos el CheckBox y declaramos nuestros views mas abajo al igual que una variable de tipo entero igualada a cero.
10.-Enlazamos nuestros views con el archivo xml y pasamos a asignar el proceso a los CheckBox.
11.-Primero agregamos al total 1 si la casilla es checada, en todas las que pusimos.
Código:
Esta es otra manera de dar respuesta a algo que queremos implementar en una App.
Resultado:
RADIOBUTTON
1.- Creamos las interfaces graficas que deseemos junto con sus actividades.
2.- En el caso de esta aplicación es un cuestionario, por lo tanto cada pregunta tiene tres opciones de respuesta.
3.-Posteriormente crearemos nuestro código en java:
switch (checa) {
case R.id.a: cont = cont + 0;
Intent enviar = new Intent(this, Dos.class);
startActivity(enviar);
case R.id.b: cont = cont + 0;
Intent enviarb = new Intent(this, Dos.class);
startActivity(enviarb);
case R.id.c: cont = cont + 1;
Intent enviarc = new Intent(this, Dos.class);
4.-Cada actividad tiene un código similar al anterior, cada radiobutton nos va a mandar a la siguiente actividad, además solo un radiobutton tendrá el valor de +1 en su contador, de esta manera al último se podrá definir cuantas preguntas correctas tuvo el usuario.
Código:
package moon.radiobutton;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.RadioGroup;
import android.widget.Toast;
public class Radiobutton extends Activity implements OnClickListener {
View boton;
RadioGroup rg;
int Ok;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_radiobutton);
rg=(RadioGroup)findViewById(R.id.radio);
boton=(View)findViewById(R.id.ok);
boton.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.radiobutton, menu);
return true;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Ok=rg.getCheckedRadioButtonId();
switch (Ok){
case R.id.bar: Toast.makeText(this, "Elegiste Halo 5", Toast.LENGTH_SHORT).show();
break;
case R.id.mad: Toast.makeText(this, "Elegiste Black ops III", Toast.LENGTH_SHORT).show();
break;
case R.id.bor: Toast.makeText(this, "Elegiste Battlefront", Toast.LENGTH_SHORT).show();
break;
}
}
}
Esta App como hemos visto es de las diferentes maneras que tenemos de dar una respuesta a algo, por lo tanto son de bastante ayuda.
Resultado:
SPINNER
1.-Primero tenemos nuestro LinearLayout con orientacion vertical.
2.-Colocamos un TextView que nos mostrara la indicacion de elegir una opcion.
3.-Despues colocamos dos Spinner.
4.-Cerramos el LinearLayoutl.
Código:
<LinearLayout 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" android:background="#070587" android:orientation="vertical" >
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Escoge una compania" android:textSize="25dp" />
<Spinner android:id="@+id/compania" android:layout_width="fill_parent" android:layout_height="wrap_content" />
<Spinner android:id="@+id/videojuego" android:layout_width="fill_parent" android:layout_height="wrap_content" />
</LinearLayout>
5.-Como hemos visto tenemos primero que implementar las librerias y en este caso la principal es el Spinner para poder usarlo.
6.-Se implementa el OnItemSelectedListener para seleccionar el Spinner con un arreglo.
7.-Despues se declara el Spinner y el arreglo de las opciones.
8.-Se declaran las opciones de cada arreglo y se enlaza con el archivo xml.
9.-Despues se implementa en los Spinner el OnItemSelectedListener y se crean variables de a1 hasta a5 para los opc del Spinner.
10.-Despues con el switch y el case se designa la opción a seleccionar en el Spinner.
Código:
package gears.spinner;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class Otros extends Activity implements OnItemSelectedListener {
Spinner spcompania, spvideojuego;
ArrayAdapter<String> aacompania,aavideojuego1,aavideojuego2, aavideojuego3, Clear;
String[] opccompania = new String[] { "Microsoft", "Playstation","Nintendo" };
String[] opcvideojuego1 = new String[] { "Halo 5", "Gears of War 4", "PVZ:GW2" };
String[] opcvideojuego2 = new String[] { "UNCHARTED 4 ","Black Ops 3", "Silent Hill " };
String[] opcvideojuego3 = new String[] { "Mario Kart 9 ","Mario Party 11 ", "Pokemon " };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spinner);
spcompania = (Spinner) findViewById(R.id.compania);
spvideojuego = (Spinner) findViewById(R.id.videojuego);
spcompania.setOnItemSelectedListener(this);
spvideojuego.setOnItemSelectedListener(this);
aacompania = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, opccompania);
aavideojuego1 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, opcvideojuego1);
aavideojuego2 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, opcvideojuego2);
aavideojuego3 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item, opcvideojuego3);
spcompania.setAdapter(aacompania);
}
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
switch(arg0.getId()){
case R.id.compania:
int seleccionado=spcompania.getSelectedItemPosition();
if(seleccionado==0){
spvideojuego.setAdapter(aavideojuego1);
}
if(seleccionado==1){
spvideojuego.setAdapter(aavideojuego2);
}
if(seleccionado==2){
spvideojuego.setAdapter(aavideojuego3);
}
break;
}
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
Podemos hacer diferentes formularios con esto, por ejemplo colocar los datos para que una persona seleccione el de su conveniencia.
Resultado:
WEBVIEW
1.-Creamos un nuevo proyecto y vamos al archivo XML.
2.- Agregamos un WebView que ocupe toda la pantalla.
CODIGO
<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" tools:context=".MainActivity" > <WebView android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="10sp" />
</RelativeLayout>
3.-En el java enlazamos nuestro WebView además de agregar una librería.
4.-Ponemos en donde cargara la pagina
5.-Agregamos el url.
6.-Agregamos los tiempos de carga
package com.wero.webview;
import static android.widget.Toast.LENGTH_SHORT;import static java.lang.System.currentTimeMillis;
import java.text.SimpleDateFormat;import java.util.Date;import java.util.Locale;
import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.net.Uri;import android.os.Bundle;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;
import android.widget.Toast;
public class MainActivity extends Activity {
private WebView myWebView;
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);this.setContentView(R.layout.main);
this.myWebView = (WebView) this.findViewById(R.id.webView);
// myWebView.addJavascriptInterface(new WebAppInterface(this),
// "Android");//// WebSettings webSettings = myWebView.getSettings();// webSettings.setJavaScriptEnabled(true);//// myWebView.loadUrl("file:///android_asset/example.html");
// Enable JavaScript WebSettings webSettings =WebSettings webSettings = myWebView.getSettings();webSettings.setJavaScriptEnabled(true);
// Provide a WebViewClient for your WebViewmyWebView.setWebViewClient(new MyWebViewClient());
myWebView.loadUrl("https://www.facebook.com");
}
@Overridepublic void onBackPressed() {
// Check if there's historyif (this.myWebView.canGoBack())
this.myWebView.goBack();else
super.onBackPressed();
}
/** * * @author amatellanes * */private class MyWebViewClient extends WebViewClient {
private long loadTime; // Web page loading time
@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String
url) {
if (Uri.parse(url).getHost().equals("https://www.facebook.com")) {
// This is my web site, so do not override; let my WebView load
// the pagereturn false;
}
// Otherwise, the link is not for a page on my site, so launch
// another Activity that handles URLsIntent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse(url));startActivity(intent);return true;
}
@Overridepublic void onPageStarted(WebView view, String url, Bitmap
favicon) {super.onPageStarted(view, url, favicon);
// Save start timethis.loadTime = currentTimeMillis();
// Show a toastToast.makeText(getApplicationContext(),
"Cargando pagina", LENGTH_SHORT).show();}
@Overridepublic void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// Calculate load timethis.loadTime = currentTimeMillis() - this.loadTime;
// Convert milliseconds to date formatString time = new SimpleDateFormat("mm:ss:SSS",
Locale.getDefault()).format(new Date(this.loadTime));
// Show a toastToast.makeText(getApplicationContext(),
"Pagina cerrada en: " + time, LENGTH_SHORT).show();
}}
}
Esta App es muy funcional para cuando queremos implementarlo en nuestras Apps para que se visualizen nuestras redes sociales.
Resultado:
TIMEPICKER
1.-Creamos un proyecto donde empezaremos con la aplicación.
2.-En el archivo XML vamos a crear el display principal.
3.-Creamos un EditText.
4.-Crearemos un TimePicker.
5.-Colocamos un TextView.
6.-Colocamos un Button.
Codigo:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#cccccc" >
<EditText
android:id="@+id/nombre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TimePicker
android:id="@+id/timePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/repite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/boton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Activar alarma" />
</LinearLayout>
3.-Asociamos el código con el layout
4.-Convertimos la variable en String.
5.-Se imprime un Toast.
Código:
package com.wero.timepicker;
import android.os.Bundle;import android.app.Activity;import android.graphics.Color;import android.view.Menu;import android.view.View;import android.widget.*;
public class HelloTimePicker extends Activity { TimePicker timePicker; EditText nombre; TextView repite; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_hello_time_picker); nombre = (EditText) findViewById(R.id.nombre); repite = (TextView) findViewById(R.id.repite); timePicker = (TimePicker) findViewById(R.id.timePicker); timePicker.setIs24HourView(true); } public void onClick(View view) { String nombres=nombre.getText().toString(); Toast.makeText(getBaseContext(), "La alarma"+nombres+" sonara a las:" + timePicker.getCurrentHour() + ":" + timePicker.getCurrentMinute(), Toast.LENGTH_SHORT).show(); repite.setBackgroundColor(Color.BLUE); repite.setText("La alarma"+nombres+" esta activa para sonar"); } }
Con esta aplicación podemos conseguir muchas cosas, por ejemplo podrias hacer una alarma.
Resultado:
DATEPICKER
1.-Creado el proyecto colocamos el LinearLayout de manera vertical.
2.-Colocamos un TextView.
3.-Colocamos el DatePicker.
4.-Colocamos un Botón.
Código:
<LinearLayout 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" android:orientation="vertical" tools:context=".MainActivity" >
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text = "Presione para modificar" />
<DatePicker android:id="@+id/dp" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<Button android:id="@+id/set" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text = "set" />
</LinearLayout>
5.-En java relacionamos con el layout.
6.-Obtenemos la fecha.
7.-La mostramos en un Toast.
Código:
package net.datepicker;
import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final DatePicker dp = (DatePicker) findViewById(R.id.dp);
final Button setBtn = (Button) findViewById(R.id.set);
setBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(
MainActivity.this,
dp.getDayOfMonth() + "/" + dp.getMonth() + "/"
+ dp.getYear(), Toast.LENGTH_SHORT).show();
}
});
}
}
Esta App nos ayudaría a crear una agenda o más aplicaciones dependiendo las necesidades que se tengan.
Resultado: