Programowanie telefonów z Windows Phone 7, cz. 2



Podobne dokumenty
Programowanie telefonów z Windows Phone 7, cz. 4

Programowanie telefonów z Windows Phone 7, cz. 5

Programowanie obiektowe i zdarzeniowe

Rozdział 3. Zapisywanie stanu aplikacji w ustawieniach lokalnych

Sensory w WP7. Wykład 11 Sensory. GPS i mapa.

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku

using System;... using System.Threading;

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Programowanie telefonów z Windows Phone 7, cz. 3

Programowanie urządzeń mobilnych

Laboratorium 10 - Web Services

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

2. W oknie dialogowym Choose Toolbox Items w zakładce.net Framework Components naciskamy przycisk Browse...

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Laboratorium programowania urządzeń mobilnych

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Leszek Stasiak Zastosowanie technologii LINQ w

Przykładowa dostępna aplikacja w Visual Studio - krok po kroku

Programowanie w technologii.net wykład 4 Aplikacja i okna

HttpRequest Aplikacja Czat

1. Pomocnicze. 2. Po zalogowaniu wybierz Pulpit nawigacyjny (Dashboard).

Podstawy programowania obiektowego

Programowanie Urządzeń Mobilnych. Laboratorium nr 9,10

Swing Application Framework czyli tam i z powrotem. Copyright Piotr Kochański & Erudis,

Przewodnik krok po kroku:

Kurs programowania. Wykład 13. Wojciech Macyna. 14 czerwiec 2017

Programowanie obiektowe

POLITECHNIKA POZNAŃSKA. Oprogramowanie dla telefonów z systemem Windows Phone 8 obsługujących technologię NFC do sprawdzania listy obecności.

Czas w WP7 (Silverlight) Wykład 7 Czas. Binding. Pliki. Launchers, choosers

Instrukcja laboratoryjna nr.4

Rys. 3. Kod elementów na stronie po dodaniu kontrolek podstawowych.

Lokalizacja Oprogramowania

Programowanie obiektowe i zdarzeniowe

xmlns:prism= c. <ContentControl prism:regionmanager.regionname="mainregion" />

Java Platform Micro Edition

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

4 C#. Tworzenie aplikacji sieciowych. 101 gotowych projektów

Programowanie obiektowe i zdarzeniowe wykład 1 Wprowadzenie do programowania zdarzeniowego

msgbox("akcja: Początek, argument: " + argument.tostring()); Thread.Sleep(1000); //opóźnienie msgbox("akcja: Koniec"); return DateTime.Now.

Metody Metody, parametry, zwracanie wartości

Klasy i obiekty cz II

Podstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.

Instrukcja laboratoryjna cz.3

Szybki Start. Informacje o module

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Lista dwukierunkowa - przykład implementacji destruktorów

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

Rozdział 2. Pierwsza aplikacja Windows Store.

Tworzenie aplikacji na WP. Blog dotyczący.net oraz WP.

Programowanie obiektowe

Programowanie obiektowe

TEMAT : KLASY POLIMORFIZM

Podstawy programowania. Ćwiczenie. Pojęcia bazowe. Języki programowania. Środowisko programowania Visual Studio

Programowanie w C++ z użyciem kontenerów - parę przykładów programów Opracowanie: dr hab. Mirosław R. Dudek, prof. UZ

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Logger. Następnie w klasie Bootstrapper muimy zarejestrować nasz nowy logger:

Laboratorium 1 - Programowanie proceduralne i obiektowe

Systemy mobilne. Laboratorium. Dostęp do danych GPS w Windows Phone 7

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Programowanie Komputerów

Programowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Programowanie obiektowe

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Prosta aplikacja klient - serwer na bazie protokoªu UDP. Sprawozdanie.

Programowanie obiektowe

Ekspert radzi. mechanizm w enova, umożliwiający wskazanie domyślnej drukarki dla danego stanowiska i wydruku. Strona 1 z 8. Ekspert radzi.

Qt sygnały i designer

Android pierwsza aplikacja

Programowanie obiektowe zastosowanie języka Java SE

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )

Podstawy i języki programowania

Tworzenie aplikacji w języku Java

Modelowanie numeryczne w fizyce atmosfery Ćwiczenia 3

Wykład 6 Dziedziczenie cd., pliki

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

PARADYGMATY PROGRAMOWANIA Wykład 3

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Języki i metody programowania Java. Wykład 2 (część 2)

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Windows Phone 7.x Pla1orma i programowanie SP2, ISWD,

Tworzenie projektu zawierającego aplet w środowisku NetBeans. lab1. Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych

Lab Windows Workflow Foundation (VS2008)

Programowanie urządzeń mobilnych w systemie Android. Ćwiczenie 7 Wykorzystanie układu LinearLayout

Podstawy programowania obiektowego

Instrukcja laboratoryjna cz.3

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

1. Wprowadzenie do WPF i XAML. Tworzenie interfejsu użytkownika.

Klasy abstrakcyjne, interfejsy i polimorfizm

AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

akademia androida Intencje oraz URI część III

Wprowadzenie do środowiska Visual Studio cz. 2 (ćwiczenie wykonywane zdalnie) Wykorzystanie Wirtualnego portu COM

Programowanie obiektowe

Transkrypt:

Programowanie telefonów z Windows Phone 7, cz. 2 Piotr M. Szczypiński Instytut Elektroniki Politechniki Łódzkiej http://www.eletel.p.lodz.pl/pms/ piotr.szczypinski@p.lodz.pl Budynek B9, II piętro, pokój 217A 1/33

Materiał na dziś 1. Zmiana orientacji strony 2. Kotwiczenie kontrolek 3. Okna komunikatów 4. Tworzenie i przełączanie stron 5. Przekazywanie danych między stronami 6. Uruchamianie zewnętrznych programów Launcher przykład przeglądarki www Chooser wyboru obrazka i uruchomienie kamery 7. Obsługa urządzeń zewnętrznych Akcelerometr 8. Programy przykładowe 2/33

Zmiana orientacji strony Zacznijmy od utworzenia nowego projektu Visual C# Silverlight for Windows Phone Windows Phone Application 3/33

1 2 3b 4b 4a 3a 4/33

5/33

6/33

Kotwiczenie kontrolek 7/33

Okna komunikatów using System.Windows.Media; private void button1_click(object sender, RoutedEventArgs e) if (MessageBox.Show("Wolisz czerwony?", "Pytanie", MessageBoxButton.OKCancel) == MessageBoxResult.OK) SolidColorBrush redbrush = new SolidColorBrush(Colors.Red); button1.background = redbrush; else Color transparent = new Color(); transparent.a = 0; SolidColorBrush whitebrush = new SolidColorBrush(transparent); button1.background = whitebrush; 8/33

9/33

10/33

Tworzenie i przełączanie stron 11/33

Tworzenie i przełączanie stron 12/33

13/33

Tworzenie i przełączanie stron private void button2_click(object sender, RoutedEventArgs e) NavigationService.Navigate(new Uri("/DrugaStrona.xaml?arg= " + 1234, UriKind.RelativeOrAbsolute)); 14/33

Tworzenie i przełączanie stron namespace DrugiProjekt public partial class DrugaStrona : PhoneApplicationPage public DrugaStrona() InitializeComponent(); private void button1_click(object sender, RoutedEventArgs e) NavigationService.GoBack(); protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) string argument; if (NavigationContext.QueryString.TryGetValue("arg", out argument)) textbox1.text = argument; 15/33

Tworzenie i przełączanie stron 16/33

Przekazywanie danych między stronami Współdzielenie obiektów (danych) między stronami jednego programu możliwe jest za pomocą klasy App (plik App.xaml.cs), która dostępna jest z poziomu pozostałych klas. Plik App.xaml.cs: public partial class App : Application public string wspoldzielony;... Plik DrugaStrona.xaml.cs: protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) App thisapp = Application.Current as App; thisapp.wspoldzielony = textbox1.text; Plik MainPage.xaml.cs: protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) App thisapp = Application.Current as App; textblock1.text = thisapp.wspoldzielony; 17/33

Przekazywanie danych między stronami Dlaczego w DrugaStrona.xaml.cs dodajemy nową funkcję OnNavigatedFrom a nie korzystamy z button1_click? protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e) App thisapp = Application.Current as App; thisapp.wspoldzielony = textbox1.text; private void button1_click(object sender, RoutedEventArgs e) App thisapp = Application.Current as App; thisapp.wspoldzielony = textbox1.text; NavigationService.GoBack(); 18/33

Uruchamianie zewnętrznych programów Launcher uruchomienie programu i... już Chooser uruchomienie programu i oczekiwanie na wynik 19/33

20/33

Uruchamianie zewnętrznych programów Uruchomienie WebBrowserTask (Launcher) using Microsoft.Phone.Tasks;... private void button3_click(object sender, RoutedEventArgs e) WebBrowserTask wb = new WebBrowserTask(); Uri adres = new Uri("http://www.eletel.p.lodz.pl/pms"); wb.uri = adres; wb.show(); 21/33

Uruchomienie CameraCaptureTask (Chooser) using System.Windows.Media.Imaging; namespace DrugiProjekt public partial class MainPage : PhoneApplicationPage CameraCaptureTask kamera; // Constructor public MainPage() InitializeComponent(); kamera = new CameraCaptureTask(); kamera.completed += new EventHandler<PhotoResult>(ZdjecieZrobione); void ZdjecieZrobione(object sender, PhotoResult e) if (e.taskresult == TaskResult.OK) image1.source = new BitmapImage(new Uri(e.OriginalFileName)); private void button4_click(object sender, RoutedEventArgs e) kamera.show();... 22/33

Obsługa urządzeń zewnętrznych Klasy zdefiniowane w przestrzeniach nazw: using Microsoft.Devices.Sensors; using Microsoft.xna.framework; Rodzaje czujników: Akcelerometr Kompas Żyroskop (opcjonalnie) Ruch Lokalizacja 23/33

24/33

25/33

Obsługa urządzeń zewnętrznych Zacznijmy od utworzenia kolejnego projektu Visual C# Silverlight for Windows Phone Windows Phone Application 26/33

Obsługa urządzeń zewnętrznych using Microsoft.Devices.Sensors; using Microsoft.Xna.Framework; Dodać moduły do References 27/33

28/33

Obsługa urządzeń zewnętrznych... using Microsoft.Devices.Sensors; using Microsoft.Xna.Framework; namespace Czujniki public partial class MainPage : PhoneApplicationPage Accelerometer accelerometer; public MainPage() InitializeComponent(); if (Accelerometer.IsSupported) accelerometer = new Accelerometer(); accelerometer.timebetweenupdates = TimeSpan.FromMilliseconds(20); accelerometer.currentvaluechanged += new EventHandler<SensorReadingEventArgs <AccelerometerReading>>(ZmianaWskazania); tryaccelerometer.start(); catch (InvalidOperationException ex) 29/33

void ZmianaWskazania(object sender, SensorReadingEventArgs<AccelerometerReading> e) Dispatcher.BeginInvoke(() => ZmianaKontrolek(e.SensorReading)); private void ZmianaKontrolek(AccelerometerReading accelerometerreading) Vector3 acceleration = accelerometerreading.acceleration; textblock1.text = "X: " + acceleration.x.tostring("0.00"); textblock2.text = "Y: " + acceleration.y.tostring("0.00"); textblock3.text = "Z: " + acceleration.z.tostring("0.00"); 30/33

Programy przykładowe 31/33

32/33

...i na tym koniec drugiej części wykładu 33/33