Kezdőlap > .NET, Windows Phone 7 > WP7 – Kamera használata

WP7 – Kamera használata

2012. március 28. szerda Hozzászólás Go to comments

Ha az alkalmazásunkból képet szeretnénk készíteni, a CameraCaptureTask-ot hívhatjuk segítségül. Ilyenkor a Windows Phone 7 beépített és megszokott felhasználói felülete fogadja a felhasználót. Elkészítheti a fotót, majd ha kész, és az accept gombot is megnyomtuk, visszatérünk az alkalmazáshoz, ahol aztán további fotóműveletet is elvégezhetünk. Nézzünk erre is egy egyszerű és gyors példát!

1. Készítsünk egy új Windows Phone 7 alkalmazás projektet!

2. A felhasználói felültre először dobjunk fel egy gombot, a gomb neve legyen btnPhoto, a Content tulajdonsága pedig legyen a „Fotó készítése” szöveg (növeljük meg a méretét a gombnak, hogy a szöveg elférjen)!

3. A gomb alá helyezzünk el még egy image-vezérlőt is, melynek mérete töltse ki minél inkább a rendelkezésre álló felhasználói felületet! Az image-vezérlő neve legyen az imgPhoto!

4. Kattintsunk kétszer a btnPhoto gombra! Miután átváltott a Visual Studio kódnézetbe, oldjuk fel a következő két névteret:

using Microsoft.Phone.Tasks;

using System.Windows.Media.Imaging;

5. A btnPhoto klikk eseményét az előzőekben már létrehoztuk. Az esemény törzsében példányosítsuk a CameraCaptureTask osztályt! Iratkozzunk fel a Completed eseményére, majd hívjuk meg a Show metódusát. A Completed esemény akkor következik be, ha sikerült a fotó elkészítése, és a felhasználó elfogadta azt.

privatevoid btnPhoto_Click(object sender, RoutedEventArgs e)

{

    CameraCaptureTask camTask = newCameraCaptureTask();

    camTask.Completed += newEventHandler<PhotoResult>(camTask_Completed);

    camTask.Show();

}

6. A Completed eseményre ugyan feliratkoztunk, de még nem írtuk meg Completed törzsét. Itt megvizsgáljuk, hogy a TaskResult az OK-e, azaz a felhasználó valóban készített-e képet és elfogadta-e azt. Ha ez így van, akkor készítünk egy BitmapImage objektumot, és a SetSource metódusban átadjuk a fotó Streamjét (ChoosenPhoto). Utolsó lépésként az Image kontrol Source tulajdonságának átadjuk ezt a bitmapImage-t, ami pedig megjeleníti.

void camTask_Completed(object sender, PhotoResult e)

{

    if (e.TaskResult == TaskResult.OK)

    {

        BitmapImage bmp = newBitmapImage();

        bmp.SetSource(e.ChosenPhoto);

        imgPhoto.Source = bmp;

    }

}

7. Indítsuk el az alkalmazást, és próbáljuk ki! Bár fizikai készüléken a legideálisabb kipróbálni, az emulátor ad azért alternatívát a kipróbálásra. Az emulátor esetén egy téglalap úszik körbe a kijelzőn, és azt fotózhatjuk le, majd jeleníthetjük meg az image kontrolban.

image

Bár a Windows Phone 7 Mango frissítésétől van arra is lehetőség, hogy direkt módon elérjük a kamerát, ha a feladat nem követeli meg, akkor sokszor célszerűbb inkább a CameraCaptureTask-ot használni, hisz ezt a felhasználó már jól ismeri, és plusz funkcionalitással is rendelkezik.

MSDN Cikk

Kategóriák:.NET, Windows Phone 7 Címke: , ,
  1. Még nincs hozzászólás.
  1. No trackbacks yet.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s

%d blogger ezt kedveli: