miércoles, 14 de diciembre de 2011

Android - Crear Dialog Custom

He tenido la necesidad de crearme un dialog con una imagen, y tras consultar la ayuda de android para desarrolladores usando la web de http://developer.android.com, concretamente este articulo, que encontré buscando en google (sin demasiada dificultad), pero os lo pongo por aquí creo que algo mejor explicao.

Lo primero declaramos un entero en la actividad que lanze al dialog:
private static final int DIALOG_MINIJUEGOS_RESULT = 0;

creamos un .xml que será el layout del dialog, puede ser lo que queráis, en este caso es una imagen y un textview, pero podríais usar cualquier tipo de layout.
 <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:id="@+id/llDialog"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dp" >

    <ImageView
        android:id="@+id/ivDialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:paddingBottom="5dp" />

    <TextView
        android:id="@+id/tvDialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="5dp"
        android:textColor="#FFF" />

    <Button
        android:id="@+id/bDialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Cerrar" />
</LinearLayout>

Ahora hay 2 opciones, en la actividad que querais lanzar el dialog, sobreescribir el metodo:
onCreateDialog(int id, Bundle bundle)

o el método:
onCreateDialog(int id)

Al primero le puedes pasar un bundle con información extra para el dialog, en este caso se usa el primero, al que le pasamos la informacion a mostrar en el dialog haciendo uso del mencionado bundle.
@Override
protected Dialog onCreateDialog(int id, Bundle bundle) {
 Dialog dialog = null;
 switch (id) {
  case DIALOG_MINIJUEGOS_RESULT:
   // obtiene datos
   String textoDialog = bundle.getString("textoDialog");
   int idIvDialog = bundle.getInt("idIvDialog");
   // crea dialog
   dialog = new Dialog(this);
   dialog.setContentView(R.layout.dialogimg);
   dialog.setTitle("Resultado Minijuego");
   // pone elementos
   TextView tvDialog = (TextView) dialog.findViewById(R.id.tvDialog);
   tvDialog.setText(textoDialog);
   ImageView ivDialog = (ImageView) dialog.findViewById(R.id.ivDialog);
   ivDialog.setImageResource(idIvDialog);
   // ivDialog.setImageResource(R.drawable.bonoff);
   Button bDialog = (Button) dialog.findViewById(R.id.bDialog);
   bDialog.setOnClickListener(this);
   break;
  }
  return dialog;
 }

Por ultimo lanzais el dialog donde lo necesiteis usando:
//creamos el bundle
Bundle dialogBundle = new Bundle();

//le añadimos la informacion que queramos
dialogBundle.putString("textoDialog", textoDialog);
dialogBundle.putInt("idIvDialog", idIvDialog);

//lanzamos el dialog
showDialog(DIALOG_MINIJUEGOS_RESULT, dialogBundle);

si usarais la opción sin bundle sería igual pero kitando el segundo parámetro, y obviamente no es necesario crear el bundle ni nada de eso.

Por último para cerrar el dialog se usa el botón bDialog que hemos añadido al dialog, y en el onclick() de nuestra actividad metemos un case nuevo con ese botón de la siguiente forma:
case R.id.bDialog:

 dismissDialog(DIALOG_MINIJUEGOS_RESULT);
 break;


Usamos el metodo dismissDialog() pasandole el mismo en entero que le pasamos cuando lanzamos el dialog.
Y esto es todo para crear un dialog custom, se pueden hacer más cosas pero lo básico es esto, si solo necesitáis mostrar texto y algún botón, no teneis que meteros en este jaleo, simplemente consultad este articulo de android.

Un saludo!

domingo, 11 de diciembre de 2011

Battlefield 3 - Troleo de pk3s/noobs

Me han molao estos videos de troleo en el battlefield 3, y sobre todo la edición del video con los memes xD, cuando me traigan mi gráfica nueva probaré a hacer alguna de las locuras que hace el protagonista del video.

Podéis encontrar más vídeos de este tío en su canal, están bastante wapos xD




A destacar:

  • Cuando tira a un sniper de una torre empujandolo con un drone
  • Cuando hace el intento de matar gente con las claymore en el jeep y no le funciona

Y alguno más hay, vedlos que no tiene desperdicio!!

Un saludo!

viernes, 9 de diciembre de 2011

FIFA 12 - El beso!

Qué grande el nuevo motor físico del FIFA 12, sabía que tenía que darnos todavía buenos momentos, y que momentos!, a la espera de otros os dejo este apasionado beso xD


Impresionante como le coge del cuello y ni corto ni perezoso el portero se deja llevar y se lanza a sus labios, como dice un comentario del video: A better love story than Twilight

Un saludo!