30.12.11

Tutorial Android parte 11: mensajes pop-up Toast en Android

Retomamos los tutoriales Android tras un parón para crear tutoriales Windows Phone 7.

En este tutorial vamos a ver cómo podemos lanzar un mensaje pop-up al usuario como "Ok, la operación se realizó correctamente".

Todos estos mensajes se hacen con la clase Toast y con el método show. Por ejemplo:

Context context = getApplicationContext();
CharSequence text = "Este es un mensaje simple.";
int duration = Toast.LENGTH_SHORT;

Toast toast = Toast.makeText(context, text, duration);
toast.show();


En este método, se crea la notificación con el método makeText que recibe como primer parámetro el contexto. Como segundo parámetro el mensaje que se mostrará al usuario. Y como tercer parámetro establece la duración de tiempo que permanecerá el mensaje en la pantalla. Esta duración puede ser larga (Toast.LENGTH_LONG) o corta (Toast.LENGTH_SHORT).

Una vez creada la notificación la podemos mostrar llamando al método show.

Tenéis el código fuente en la siguiente entrada:

Descargar código fuente del tutorial.


Crear aplicación
Primero abrimos Eclipse. Después seleccionamos:
- Ir a File -> New -> Project.
- Seleccionar un proyecto "Android Project" y pulsar Next.
- Rellenar los campos con los siguientes valores:
      o Project name: ActividadEjemploToast
      o Application name: Ejemplo mensajes Toast
      o Package name: com.example.ejemplotoast
      o Create Activity: ActividadEjemploToast
- Hacer click en Finish.

Ponemos un botón en el fichero res/layout/main.xml que será el que llamará al mensaje pop-up:



Por último sólo nos queda rellenar el código de la clase ActividadEjemploToast, donde pondremos lo siguiente:

package com.example.ejemplotoast;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class ActividadEjemploToast extends Activity {

      private Button btnPopUpSimple;

      OnClickListener mPopUpSimpleListener = new OnClickListener() {
         public void onClick(View v) {
            Context context = getApplicationContext();
            CharSequence text = "Este es un mensaje simple.";
            int duration = Toast.LENGTH_SHORT;
            Toast toast = Toast.makeText(context, text, duration);
            toast.show();
         }
      };


      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

             //boton mensaje pop up simple
            btnPopUpSimple = (Button) findViewById(R.id.botonmensajepopupsimple);
            btnPopUpSimple.setOnClickListener(mPopUpSimpleListener);

      }
}

Básicamente asignamos que cuando se pulse el botón, se lance el mensaje pop up.


Lanzar la aplicación
- Seleccionar Run -> Run.
- Seleccionar Android application.



Y al pulsar el botón lanzará el mensaje popup.





Posicionar el mensaje en la pantalla

Por defecto el mensaje pop up nos aparece en la parte inferior de la pantalla centrado pero podríamos querer cambiarlo. Para ello utilizamos el método setGravity sobre el objeto Toast creado. Este método permite establecer la posición de la pantalla utilizando la constante Gravity (p.ej, Gravity.Left, Gravity.Right, Gravity.Bottom…) seguido de dos valores numéricos que indican el desplazamiento en el eje horizontal y vertical. Por ejemplo:

toast.setGravity(Gravity.TOP|Gravity.LEFT, 0, 0);

Pondría el mensaje pop up en la parte superior izquierda de la pantalla, sin desplazarlo horizontal y ni verticalmente.

En el código vamos a hacer el siguiente cambio:

OnClickListener mPopUpSimpleListener = new OnClickListener() {
      public void onClick(View v) {
            Context context = getApplicationContext();
            CharSequence text = "Este es un mensaje simple.";
            int duration = Toast.LENGTH_SHORT;
            Toast toast = Toast.makeText(context, text, duration);
            toast.setGravity(Gravity.TOP|Gravity.RIGHT, 0, 0);
            toast.show();
            }
      };

Al ejecutar obtendremos que al pulsar el botón, el mensaje aparece en la parte superior derecha de la pantalla:

28.12.11

Aprender Windows Phone 7 (parte 41): Panel Canvas

Hay varios tipos de paneles en Windows Phone en los que colocar los controles que irán en las páginas de nuestras aplicaciones Silverlight.

Algunos de ellos son:

- Canvas
- Grid
- StackPanel

En este tutorial vamos a aprender a utilizar el panel Canvas.

Los controles que metamos dentro del panel Canvas podemos colocarlos en cualquier posición dentro del panel. Para ello, se utilizan las propiedades Canvas.Left y Canvas.Top para indicar su posición respecto al borde lateral izquierdo y al borde superior del panel Canvas respectivamente.



Creando el proyecto

Abrimos Visual Studio y creamos un nuevo proyecto, para ello hay que pulsar en el menú "File" -> opción "New Project".

En la nueva ventana he seleccionado las opciones “Visual C#” -> “Silverlight for Windows Phone” -> “Windows Phone Application”. Los demás datos son:



Name = CanvasApp
Location = (la que queráis, yo lo puse en...) C:\A_warterrain_A\Ejemplos WP7\CanvasApp\
SolutionName = CanvasApp

A continuación se pide la versión de la aplicación. Seleccionamos Windows Phone 7.1 y damos a Ok.



Vamos a cambiar el interfaz de la página:

- Titulo "CANVAS EXAMPLE"
- Titulo "principal".
- Un panel Canvas

Con el siguiente formato final:



El código XAML que se habría creado del panel Canvas es:



Y ahora vamos a meter unos botones dentro de este panel Canvas y vamos a ponerlos en las siguientes posiciones:

- botón Ver (left: 190 - top:20)
- botón Modificar (left: 10 - top:80)
- botón Sustituir (left: 50 - top:140)
- botón Eliminar (left: 170 - top:200)
- botón Enviar (left: 20 - top:260)

Tras agregarlos la página tendrá el siguiente aspecto.



El código XAML es:



Si lanzamos la aplicación "Debug" -> "Start Debugging" podemos ver el resultado.

[Inocentada] XBox 720 con Windows Phone

[Actualizado]

El pasado 28 de Diciembre en el blog de Josué Yeray colgaron esta noticia:

Noticia "XBox 720 Portable + Windows Phone OS".

La noticia contaba que parecía ser que Microsoft tendría planeado sacar una consola portátil para el verano de 2013. El nombre del dispositivo sería Xbox 720 Portable y correría con un sistema operativo Windows Phone. Incluso daban varios enlaces para hacerlo más creible.

Pues al final todo era una broma de Josué :) por el día de los inocentes.

Muy buena inocentada, jejejejeje. Muy trabajada.

De todas formas, aunque nos engañó como un malandrín, no nos importa. Se agradece la simpatía de la broma y lo positivo que es el buen humor en estos tiempos tan malos de crisis.

25.12.11

Aprender Windows Phone 7 (parte 40): Hola mundo en XNA

Vamos a empezar a aprender a crear juegos para Windows Phone 7 utilizando XNA.

Nuestro primer ejercicio va a ser crear un programa Hola mundo con XNA en Windows Phone 7.

En estos tutoriales se van a centrar en la parte de programación y no van a entrar a explicar los conceptos teóricos de XNA. Esa parte la podéis encontrar en otros libros como por ejemplo:

"Introduction to Programming Through Game Development Using Microsoft XNA Game Studio"

Y el curso online de XNA en Windows Phone 7.



Creando un primer juego Hola mundo

Vamos a crear un primer juego que muestre un mensaje hola mundo por la pantalla.

Abrimos Visual Studio y creamos un nuevo proyecto, para ello hay que pulsar en el menú "File" -> opción "New Project".

En la nueva ventana he seleccionado las opciones "Visual C#" -> "XNA Game Studio" -> "Windows Phone Game (4.0)". Los demás datos son:



Name = HolaMundoXNA
Location = (la que queráis, yo lo puse en...) C:\A_warterrain_A\Ejemplos WP7\HolaMundoXNA\
SolutionName = HolaMundoXNA


A continuación se pide la versión de la aplicación. Seleccionamos Windows Phone 7.1 y damos a Ok.




Por el momento, podemos ver que se han creado dos proyectos, uno para el código y otro para el contenido.

Las fuentes no vienen incorporadas por defecto en XNA, así que vamos a agregar una fuente para poder poner el texto en el juego.

Para ello seleccionamos el proyecto de contenido (Content) con el botón derecho en el explorador de soluciones y seleccionamos en el menú contextual la opción "Add a New Item". Elegimos Sprite Font, poniendo de nombre mySpriteFont.spritefont y pulsa "Add".







Se creará el archivo xml con los datos de la fuente que por defecto es la fuente Segoe.


Vamos a añadir los siguientes atributos a la clase Game1.cs:

string text = "Hola, mundo!";
SpriteFont segoe;
Vector2 textPosition;


Después vamos a modificar el código de la función LoadContent:



A continuación, vamos a modificar el código de la función Draw:

protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.Navy);

spriteBatch.Begin();
spriteBatch.DrawString(segoe, text, textPosition, Color.White);
spriteBatch.End();

base.Draw(gameTime);
}


Este código lo que hace es poner el fondo del dispositivo a color Navy y después escribe una cadena de texto (contenida en la variable text) en la posición textPosition con el color blanco (White).

Pues vamos a ver qué tal ha quedado. Pulsamos en "Debug" -> "Start debugging" arrancaremos el emulador.

Tras un momento en que se ha estado iniciando el emulador, veréis el "Hola, mundo" en el emulador de Windows Phone 7.




La orientación del texto es la del dispositivo. En XNA la orientación por defecto es "landscape" (teléfono tumbado). Al revés que en las aplicaciones en Silverlight cuya orientación por defecto es "portrait" (teléfono de pie).



Descargar el código fuente de este tutorial.

Tutorial desarrollado por Grupo Libre y Extremo (Talavera de la Reina).

Introducción al desarrollo con Windows Phone para desarrolladores de iPhone



En el Centro de Desarrollo de Windows Phone han publicado este video para enseñar a migrar aplicaciones iPhone a Windows Phone 7.5.

24.12.11

Aprender Windows Phone 7 (parte 39): Windows Phone Toolkit – Introducción y configuración

Hace unos meses se publicó el Silverlight for Windows Phone Toolkit, este paquete contiene un montón de controles nuevos para utilizarlos en nuestras aplicaciones Windows Phone 7 que nos ahorran tener que desarrollarlos y probarlos nosotros.

En estos tutoriales vamos a aprender a añadir este paquete y utilizar estos controles en nuestras aplicaciones para hacerlas mucho mejores.

Algunos de los controles que trae el paquete y que vamos a ver son:

- AutoCompleteBox
- ContextMenu
- DatePicker
- DateTimeConverters
- ExpanderView
- Gestures
- HeaderedItemsControl
- HubTile
- ListPicker
- LocalizedResources
- LockablePivot
- LoopingSelector
- LongListSelector
- MultiselectList
- Page Transitions
- PerformanceProgressbar
- PhoneTextBox
- WrapPanel
- TiltEffect
- TimePicker
- ToggleSwitch

Si todavía no os habéis instalado este paquete tenéis este tutorial que hemos creado en este blog sobre cómo hacerlo paso a paso:

http://libreyextremo.blogspot.com/2011/11/aprender-windows-phone-7-parte-29-como.html



Cómo agregar el Windows Phone Toolkit a vuestras aplicaciones Windows Phone 7

Abrimos Visual Studio y creamos un nuevo proyecto, para ello hay que pulsar en el menú "File" -> opción "New Project".

En la nueva ventana he seleccionado las opciones "Visual C#" -> "Silverlight for Windows Phone" -> "Windows Phone Application". Los demás datos son:



Name = (lo que queráis, yo puse por ejemplo...) WPToolkitExample
Location = (la que queráis, yo lo puse en...) C:\A_warterrain_A\Ejemplos WP7\ WPToolkitExample \
SolutionName = (lo que queráis, yo puse por ejemplo...) WPToolkitExample

A continuación se pide la versión de la aplicación. Seleccionamos Windows Phone 7.1 y damos a Ok.



Vamos a agregar la librería del Windows Phone Toolkit a nuestro proyecto. La librería se encuentra en el directorio bin dentro de la carpeta donde se descargó el paquete que será:

Para Sistemas Operativos de 64 bit:
C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Toolkit\

Para Sistemas Operativos de 32 bit:
C:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Toolkit\

En mi caso la dll se encontraba en la ruta:

C:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Toolkit\Aug11\Bin\ Microsoft.Phone.Controls.Toolkit.dll

Para agregar esta librería, hay que pulsar con el botón derecho en el elemento "References" de nuestro proyecto en el Explorador de Soluciones y seleccionar la opción "Add reference".



Tras buscar en la ruta la librería y agregarla aparecerá entre las referencias del proyecto:



A continuación, cuando en una página de la aplicación queramos utilizar los controles del toolkit, primero habrá que agregar el espacio de nombres del toolkit. Para ello en el archivo xaml de la página deberá agregarse la etiqueta xmlns:toolkit a la etiqueta phone:



Después ya podremos agregar los controles del toolkit, para ello habrá que agregar una etiqueta toolkit de la siguiente forma:



Seleccionaremos el control y lo agregaremos. Por ejemplo, si agregasemos un DatePicker, quedaría así:



Sencillo ¿verdad?



Cómo agregar la Windows Phone Toolkit tab a la caja de herramientas de Visual Studio

De la caja de herramientas (Toolbox) de Visual Studio es de donde solemos coger los controles, arrastrarlos y ponerlos en las páginas de nuestras aplicaciones en Windows Phone 7.

Podemos agregar una pestaña más a la caja de herramientas con todos los controles de Windows Phone Toolkit.

Para ello, en el Toolbox hay que pulsar con el botón derecho y seleccionar la opción "Add Tab".



Después ponemos nombre a esta etiqueta por ejemplo “Windows Phone Toolkit”:



Después pinchamos en esta pestaña con el botón derecho y seleccionamos "Choose Items..."



En la ventana que se abrirá hay que seleccionar los controles que va a tener esta pestaña. Lo que vamos a hacer es marcar todos los controles del ensamblado "Microsoft.Phone.Controls.Toolkit".



Damos a Ok y ya tendremos nuestra pestaña con los controles de las Windows Phone Toolkit listo para utilizar.



En el próximo tutorial vamos a ir viendo cada uno de estos controles.

23.12.11

[Ebook gratis] Programing Windows Phone 7 - Charles Petzold


Hace tiempo ya se habló de esta noticia pero la vuelvo a postear por si alguien no la conocía.

En la página web de Charles Petzold podéis encontrar su libro "Programming Windows Phone 7" para descargar... totalmente gratis en formato pdf.

Es un buen libros para adentrarse en el desarrollo de aplicaciones para Windows Phone 7. Así que no perdáis la oportunidad de descargároslo y leerlo.


Ebook en formato pdf: Programming Windows Phone 7.

Ejemplos de código: Programming Windows Phone 7 Sample Code.zip

22.12.11

Aprender Windows Phone 7 (parte 38): Windows Phone 7 Chooser - SaveEmailAddressTask

El chooser SaveEmailAddressTask salva una dirección de email en la lista de Contactos. Este chooser no devuelve datos, pero se puede manejar el evento Completed para determinar si la operación se completó correctamente.


En la documentación aparece este ejemplo:

public partial class MainPage : PhoneApplicationPage
{
// Declare the SaveEmailAddressTask object with page scope.
SaveEmailAddressTask saveEmailAddressTask;


// Constructor
public MainPage()
{
InitializeComponent();

// Initialize the SaveEmailAddressTask and assign the Completed handler in the page constructor.
saveEmailAddressTask = new SaveEmailAddressTask();
saveEmailAddressTask.Completed += new EventHandler(saveEmailAddressTask_Completed);
}


// In this example, the SaveEmailAddressTask is shown in response to a button click and the
// email address value is obtained from a TextBox control.
private void button1_Click(object sender, RoutedEventArgs e)
{
saveEmailAddressTask.Email = emailTextBox.Text;
try
{
saveEmailAddressTask.Show();
}
catch (System.InvalidOperationException ex)
{
// Catch the exception, but no handling is necessary.
}
}


// The Completed event handler. No data is returned from this Chooser, but the TaskResult
// field allows you to determine if the task was completed or cancelled.
void saveEmailAddressTask_Completed(object sender, TaskEventArgs e)
{
if(e.TaskResult == TaskResult.OK)
{
statusTextBlock.Text = "Save completed.";
}
else if(e.TaskResult == TaskResult.Cancel)
{
statusTextBlock.Text = "Save cancelled.";
}
}
}


Nosotros vamos a crear un programa en el que el usuario pueda llamar a este chooser y elegir un contacto donde guardar el email.



Creando el proyecto

Abrimos Visual Studio y creamos un nuevo proyecto, para ello hay que pulsar en el menú "File" -> opción "New Project".

En la nueva ventana he seleccionado las opciones "Visual C#" -> "Silverlight for Windows Phone" -> "Windows Phone Application". Los demás datos son:



Name = SaveEmailAddressTaskExample
Location = (la que queráis, yo lo puse en...) C:\A_warterrain_A\Ejemplos WP7\ SaveEmailAddressTaskExample \
SolutionName = SaveEmailAddressTaskExample

A continuación se pide la versión de la aplicación. Seleccionamos Windows Phone 7.1 y damos a Ok.



Vamos a cambiar el interfaz de la página:

- Titulo "SAVEEMAILADDRESSTASK EXAMPLE".
- Titulo "principal".
- Un TextBox para escribir la dirección de email a salvar.
- Un Button para salvar el email.
- Y un TextBlock para mostrar que la operación se realizó correctamente.

Con el siguiente formato final:



Hay que agregar la siguiente librería:

using Microsoft.Phone.Tasks;


Creamos un atributo de la clase SaveEmailAddressTask en la página principal:

SaveEmailAddressTask saveEmailAddressTask;


En el constructor hemos creado el objeto y hemos asignado el evento Completed.

saveEmailAddressTask = new SaveEmailAddressTask();
saveEmailAddressTask.Completed += new EventHandler(saveEmailAddressTask_Completed);


Y agregamos el método:

void saveEmailAddressTask_Completed(object sender, TaskEventArgs e)
{
if (e.TaskResult == TaskResult.OK)
{
textBlockStatus.Text = "Save completed.";
}
else if (e.TaskResult == TaskResult.Cancel)
{
textBlockStatus.Text = "Save cancelled.";
}
}


Cuando se pulse el botón se ejecutará el siguiente código fuente:

private void buttonSaveEmail_Click(object sender, RoutedEventArgs e)
{
saveEmailAddressTask.Email = textBoxEmail.Text;
try
{
saveEmailAddressTask.Show();
}
catch (System.InvalidOperationException ex)
{
// Catch the exception, but no handling is necessary.
}
}

Pues vamos a ver qué tal ha quedado. Pulsamos en "Debug" -> "Start debugging" arrancaremos el emulador.

Tras un momento en que se ha estado iniciando el emulador, veréis el programa en el emulador de Windows Phone 7.



Si pulsamos "Guardar email" pasaremos a la aplicación de Contactos:



Seleccionamos el contacto donde se guardará el correo.



Editamos el correo antes de guardarlo.



Tras guardarlo aparecerá el resumen con la información del contacto.

Al terminar de guardar el email volveremos a nuetra aplicación donde se mostrará el mensaje de que se ha salvado el email correctamente.



El código fuente del ejemplo podéis descargaroslo de la siguiente dirección en nuestro repositorio de código:

Código fuente tutorial aprender Windows Phone 7 Parte 38


Tutorial desarrollado por Grupo Libre y Extremo (Talavera de la Reina).

20.12.11

Talavera DevCamp


Ya hemos decidido nombre para los eventos que hacemos en el grupo:

Talavera DevCamp

Nos gustó la definición de DevCamp que encontramos en este artículo.



Un evento Talavera DevCamp se caracteriza por ser:

- Un evento orientado al desarrollo de software (sobre plataformas Android, Windows Phone o cualquier otra).

- Los asistentes pueden dar "desconferencias" durante el evento escribiendo en el "Tablón de Desconferencias" la hora y el lugar donde dará la conferencia y una lista para que se apunten los asistentes.

- El evento es totalmente gratis.

- Puede asistir cualquier miembro del Grupo Libre y Extremo.

- Puede impartir desconferencias cualquier asistente miembro del Grupo Libre y Extremo.



Hemos modificado los enlaces rápidos de la barra lateral de esta web para que se muestre toda la información de este tipo de eventos.

Esperamos que de este grupo siembre los cimientos de una potente industria de software que se convierta en una fuente de riqueza para la ciudad de Talavera de la Reina.

Aprender Windows Phone 7 (parte 37): Windows Phone 7 Chooser - PhotoChooserTask

PhotoChooserTask lanza la aplicación de Selección de Fotografías. Si el usuario completa la operación, entonces devuelve un stream con la imagen.


En la documentación aparece este ejemplo:

public partial class MainPage : PhoneApplicationPage
{
// Declare the PhotoChooserTask object with page scope.
PhotoChooserTask photoChooserTask;


// Constructor
public MainPage()
{
InitializeComponent();

// Initialize the PhotoChooserTask and assign the Completed handler in the page constructor.
photoChooserTask = new PhotoChooserTask();
photoChooserTask.Completed += new EventHandler(photoChooserTask_Completed);
}


// In this example, the PhotoChooserTask is shown in response to a button click
private void button1_Click(object sender, RoutedEventArgs e)
{
try
{
photoChooserTask.Show();
}
catch (System.InvalidOperationException ex)
{
// Catch the exception, but no handling is necessary.
}
}


// The Completed event handler. In this example, a new BitmapImage is created and
// the source is set to the result stream from the PhotoChooserTask
void photoChooserTask_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
System.Windows.Media.Imaging.BitmapImage bmp =
new System.Windows.Media.Imaging.BitmapImage();
bmp.SetSource(e.ChosenPhoto);
}
}
}

Nosotros vamos a crear un programa en el que el usuario pueda llamar a este chooser y elegir una imagen que haya en el teléfono.


Creando el proyecto

Abrimos Visual Studio y creamos un nuevo proyecto, para ello hay que pulsar en el menú "File" -> opción "New Project".

En la nueva ventana he seleccionado las opciones "Visual C#" -> "Silverlight for Windows Phone" -> "Windows Phone Application". Los demás datos son:



Name = PhotoChooserTaskExample
Location = (la que queráis, yo lo puse en...) C:\A_warterrain_A\Ejemplos WP7\ PhotoChooserTaskExample\
SolutionName = PhotoChooserTaskExample

A continuación se pide la versión de la aplicación. Seleccionamos Windows Phone 7.1 y damos a Ok.



Vamos a cambiar el interfaz de la página:

- Titulo "PHOTOCHOOSERTASK EXAMPLE".
- Titulo "principal".
- Un Button para lanzar la aplicación de selección de fotos.
- Y un control Image para mostrar la imagen seleccionada.

Con el siguiente formato final:




Hay que agregar la siguiente librería:

using Microsoft.Phone.Tasks;


Creamos un atributo de la clase PhoneChooserTask en la página principal:

PhotoChooserTask photoChooserTask;


En el constructor hemos creado el objeto y hemos asignado el evento Completed.

photoChooserTask = new PhotoChooserTask();
photoChooserTask.Completed += new EventHandler(photoChooserTask_Completed);


Y agregamos el método:

void photoChooserTask_Completed(object sender, PhotoResult e)
{
if (e.TaskResult == TaskResult.OK)
{
System.Windows.Media.Imaging.BitmapImage bmp =
new System.Windows.Media.Imaging.BitmapImage();
bmp.SetSource(e.ChosenPhoto);
imagePhoto.Source = bmp;
}
}


Cuando se pulse el botón se ejecutará el siguiente código fuente:

private void buttonSelectPhoto_Click(object sender, RoutedEventArgs e)
{
try
{
photoChooserTask.Show();
}
catch (System.InvalidOperationException ex)
{
// Catch the exception, but no handling is necessary.
}
}


Pues vamos a ver qué tal ha quedado. Pulsamos en "Debug" -> "Start debugging" arrancaremos el emulador.

Tras un momento en que se ha estado iniciando el emulador, veréis el programa en el emulador de Windows Phone 7.



Si pulsamos Seleccionar imagen pasaremos a la aplicación de Selección de imágenes:



Si seleccionamos una imagen volveremos a la aplicación:



Y se mostrará la imagen en nuestro control Image.

14.12.11

Videotutoriales Windows Phone 7 en 7 Minutos

En la página web www.msdev.com han creado un curso de Windows Phone 7 llamado Windows Phone 7 en 7 Minutos.

El curso está formado por un buen número de videotutoriales de corta duración sobre Windows Phone 7.

Acceder a "Windows Phone 7 en 7 Minutos".

Videotutoriales:

- Windows Phone 7 in 7: Introducing Windows Phone 7
- Windows Phone 7 in 7: Getting Started with Windows Phone 7
- Windows Phone 7 in 7: The Windows Phone 7 Application Architecture

- Windows Phone 7 in 7: Silverlight and Windows Phone 7
- Windows Phone 7 in 7: XNA and Windows Phone 7
- Windows Phone 7 in 7: Windows Phone 7 Controls

- Windows Phone 7 in 7: Connecting to Web Services
- Windows Phone 7 in 7: Windows Phone 7 and Data
- Windows Phone 7 in 7: Using Isolated Storage

- Windows Phone 7 in 7: The Application Bar
- Windows Phone 7 in 7: Developing for the Windows Phone 7 Web Browser
- Windows Phone 7 in 7: Globalization and Localization

- Windows Phone 7 in 7: Building a Location-aware Application
- Windows Phone 7 in 7: Push Notifications
- Windows Phone 7 in 7: Security and Windows Phone 7

- Windows Phone 7 in 7: Using the Accelerometer
- Windows Phone 7 in 7: Using Media in Windows Phone 7 Apps
- Windows Phone 7 in 7: Manipulations

- Windows Phone 7 in 7: SIP Layout
- Windows Phone 7 in 7: Using the Windows Phone 7 Cameras

Disfrutadlos.

12.12.11

Windows Phone 7 MSDN library documentation

En la web de create.msdn.com, he encontrado esta página con enlaces a la documentación de MSDN que trata de las herramientas y tecnologías de desarrollo para Windows Phone.

Esta página es un estupendo índice para buscar información y aprender más sobre cómo desarrollar aplicaciones y juegos para Windows Phone 7 con Silverlight y XNA.

Secciones:

- Windows Phone Development.
- Silverlight for Windows Phone.
- XNA Game Studio 4.0.
- Expression Blend SDK for Windows Phone.
- Visual Basic and C#.
- Visual Studio 2010 Express for Windows Phone.

10.12.11

Aprender Windows Phone 7 (parte 36): Windows Phone 7 Chooser - EmailAddressChooserTask

El Chooser EmailAddressChooserTask lanza la aplicación de Contactos y permite al usuario seleccionar un contacto. Si la operación se completa con éxito se devolverá un objeto EmailResult que contiene un string con el email.

En la documentación aparece este ejemplo:

public partial class MainPage : PhoneApplicationPage
{
// Declare the EmailAddressChooserTask object with page scope.
EmailAddressChooserTask emailAddressChooserTask;


// Constructor
public MainPage()
{
InitializeComponent();

// Initialize the EmailAddressChooserTask and assign the Completed handler in the page constructor.
emailAddressChooserTask = new EmailAddressChooserTask();
emailAddressChooserTask.Completed += new EventHandler(emailAddressChooserTask_Completed);
}


// In this example, the EmailAddressChooserTask is shown in response to a button click
private void button1_Click(object sender, RoutedEventArgs e)
{
try
{
emailAddressChooserTask.Show();
}
catch (System.InvalidOperationException ex)
{
// Catch the exception, but no handling is necessary.
}
}


// The Completed event handler. In this example, the retrieved email address is shown
// in a TextBox control.
void emailAddressChooserTask_Completed(object sender, EmailResult e)
{
if (e.TaskResult == TaskResult.OK)
{
textBox1.Text = e.Email;
}
}
}

Nosotros vamos a crear un programa en el que el usuario pueda llamar a este chooser y elegir el mail de un contacto.



Creando el proyecto

Abrimos Visual Studio y creamos un nuevo proyecto, para ello hay que pulsar en el menú "File" -> opción "New Project".

En la nueva ventana he seleccionado las opciones "Visual C#" -> "Silverlight for Windows Phone" -> "Windows Phone Application". Los demás datos son:

Name = EmailAddressChooserTaskExample
Location = (la que queráis, yo lo puse en...) C:\A_warterrain_A\Ejemplos WP7\ EmailAddressChooserTaskExample\
SolutionName = EmailAddressChooserTaskExample



A continuación se pide la versión de la aplicación. Seleccionamos Windows Phone 7.1 y damos a Ok.



Vamos a cambiar el interfaz de la página:

- Titulo "EMAILADDRESSCHOOSERTASK EXAMPLE".
- Titulo "principal".
- Un Button para lanzar la aplicación de selección de emails.
- Y un control Textbox para mostrar el contacto seleccionado.

Con el siguiente formato final:



Hay que agregar la siguientes librerías (para PhoneNumberChooserTask) :

using Microsoft.Phone.Tasks;


Creamos un atributo de la clase PhoneNumberChooserTask en la página principal:

EmailAddressChooserTask emailAddressChooserTask;


En el constructor hemos creado el objeto y hemos asignado el evento Completed.

emailAddressChooserTask = new EmailAddressChooserTask();
emailAddressChooserTask.Completed += new EventHandler(emailAddressChooserTask_Completed);


Y agregamos el método:

void emailAddressChooserTask_Completed(object sender, EmailResult e)
{
if (e.TaskResult == TaskResult.OK)
{
textBoxEmail.Text = e.Email;
}
}


Cuando se pulse el botón se ejecutará el siguiente código fuente:

private void buttonSeleccionarEmail_Click(object sender, RoutedEventArgs e)
{
try
{
emailAddressChooserTask.Show();
}
catch (System.InvalidOperationException ex)
{
// Catch the exception, but no handling is necessary.
}
}


Pues vamos a ver qué tal ha quedado. Pulsamos en "Debug" -> "Start debugging" arrancaremos el emulador.

Tras un momento en que se ha estado iniciando el emulador, veréis el programa en el emulador de Windows Phone 7.



Al pulsar el botón se lanzará el selector de email:



Al seleccionar un contacto obtendremos su email:



Y obtendremos el correo de ejemplo seleccionado.