Laboratorium programowania urządzeń mobilnych Wprowadzenie
Transkrypt
Laboratorium programowania urządzeń mobilnych Wprowadzenie
Laboratorium programowania urządzeń mobilnych Wprowadzenie Hierarcha klas dla aplikacji typu Silverlight tworzonej przez Visual Studio jest następująca: Obsługa ekranu • • • W urządzeniach z Windows Phone 7 istnieje możliwość obsługi czterech punktów dotykowych równocześnie (co jest dużym wyzwaniem dla programistów) Emulator Windows Phone kliknięcie myszą przekształca na dotyk ekranowy Silverlight obsługuje dwa różne interfesy „multi-touch”: 1. Low-level - bazuje na zdarzeniu Touch.FrameReported, podobny jest do XNA TouchPanel except 2. High-level - składa się z trzech zdarzeń definiowanych przez UIElement : ManipulationStarted, ManipulationDelta i ManipulationCompleted. Interfejs low-level Głównym elementem interfejsu jest klasa TouchPoint, której instancja reprezentuje poszczególne „palce” dotykające ekran. Posiada następujące właściwości (parametry): 1. 2. 3. 4. Action - typu TouchAction o wartościach Down, Move i Up. Position - typu Point, Size - typu Size, TouchDevice - typu TouchDevice. TouchDevice - posiada dwie właściwości 1. Id - używany do rozróżnienia „palców” (potrzebny dla Down i Up). 2. DirectlyOver - typu UIElement, określa rodzaj obiektu pod „palcami” Aby zastosować low-level interfejs trzeba wykorzystać zdarzenie Touch.FrameReported: Touch.FrameReported += OnTouchFrameReported; Metoda OnTouchFrameReported ma postać: void OnTouchFrameReported(object sender, TouchFrameEventArgs args) {…} Objekt TouchFrameEventArgs posiada właściwość TimeStamp (typu int) oraz trzy metody: • GetTouchPoints(refElement) zwraca TouchPointCollection • GetPrimaryTouchPoint(refElement) zwraca TouchPoint • SuspendMousePromotionUntilTouchUp() Kontrolki Każda aplikacja zawiera szereg kontrolek, które zazwyczaj są generowane automatycznie. Wystarczy otworzyć ToolBox i przeciągnąć wybraną kontrolkę na ekran telefonu. Dokładny opis kontrolek jest w dokumentacji WPhone. Poniżej jest opisane zastosowanie kilku popularnych kontrolek Image - pozwala na wyświetlania obrazków, ScrollViewer - pozwala na przesuwanie elementów w niej zawartych, TextBlock - służy głównie do wyświetlania tekstu, ListBox - służy do tworzenia list z wielu innych kontrolek, działa podobnie jak ScrollViewer, Map - służy do określania lokalizacji na mapie, Media Element - umożliwia prezentację plików multimedialnych, PasswordBox - umożliwia maskowanie tekstu, jaki jest do niej wprowadzany, RadioButton - umożliwia zaznaczenie jednej z dostępnych opcji, kontrolki te mogą być grupowane, Slider - służy do płynnej regulacji zmiany wartości różnych zakresów, StackPanel - powierzchnia do rozmieszczania kontrolek, kontrolki w niej zawarte można jedynie przeglądać, TextBox - służy do pobierania tekstu z klawiatury, Przykład Utworzymy aplikację , która będzie zawierała odwołania do kilku stron zawierających prezentacje wybranych kontrolek. Do ułożenia odwołań wykorzystamy kontrolkę StackPanel umożliwiającą automatyczne układanie elementów pionowo (jeden pod drugim) lub poziomo (jeden obok drugiego). Tworzymy nowy projekt. Zostanie wygenerowana strona główna MainPage.xaml. W oknie XAML zmieniamy nazwę aplikacji i strony głównej: W oknie XAML zmieniamy nazwę aplikacji i strony głównej. ◦ ◦ Dla TextBlock o x:Name=ApplicationTitle zmieniamy właściwość Text na Kontrolki. Dla TextBlock o x:Name=PageTitle zmieniamy właściwość Text na Wybór. W oknie XAML do elementu Grido x:Name=ContentPanel dodajemy element StackPanel . Dodajemy kontrolkę HyperlinkButton i zmieniamy jej właściwość Content na Główne. Dwukrotnie klikamy kontrolkę i w metodzie hyperlinkButton1_Click dodajemy: NavigationService.Navigate(new Uri("/Kontrolki;component/Glowne.xaml", UriKind.Relative)); Dodajemy do projektu nową stronę o nazwie Glowne.xaml Z menu wybieramy Project -> Add New Item. W oknie Add New Item: — z lity dostępnych szablonów wybieramy Windows Phone PortraitPage, — w polu Name wpisujemy Glowne.xaml, — wciskamy przycisk Add. Na stronie Glowne.xaml, w oknie XAML określamy nazwę aplikacji i strony Dla elementu TextBlock o x:Name=ApplicationTitle zmieniamy właściwość Text na Kontrolki Dla elementu TextBlock o x:Name=PageTitle zmień właściwość Text na Główne W oknie XAML do elementu Grid o x:Name=ContentPanel dodajemy element StackPanel, a następnie dodajemy kontrolki umożliwiające: Pobranie imienia: Przenosimy kontrolkę TextBlock i określamy jej właściwość Text jako Podaj imię: Przenosimy kontrolkę TextBox i określamy jej właściwość Text jako "". Pobranie wieku: Przenosimy kontrolkę TextBlock i określamy jej właściwość Text jako Podaj wiek: Przenosimy kontrolkę TextBox i określamy jej właściwość Text jako ”” oraz dodajemy właściwość InputScope="Number„. Dodajemy kontrolki wyboru. Przenosimy kontrolkę TextBlock i zmieniamy właściwość Text na Wybierz płeć: Przenosimy kontrolkę RadioButton i określamy jej właściwość Content jako "Kobieta", następnie definiujemy właściwość GroupName="Plec". Przenosimy kontrolkę RadioButton i określamy jej właściwość Content jako "Mężczyzna", definiujemy właściwość GroupName="Plec„. Dodajemy kontrolki umożliwiające pobranie hasła Wstawiamy: kontrolkę TextBlock i określamy jej właściwość Text jako Podaj hasło: kontrolkę PasswordBox. kontrolkę CheckBox i określamy jej właściwość Content jako "Zapamiętac ?". Dodajemy przycisk umożliwiający zatwierdzenie danych i przejście do strony głównej. Do okna podglądu telefonu przenosimy kontrolkę Button i dwukrotnie klikamy na dodaną kontrolkę a w metodzie button1_Click piszemy: NavigationService.Navigate(newUri("/Kontrolki; component/MainPage.xaml", UriKind.Relative)); Dodajemy nową stronę o nazwie Dodatkowe.xaml Z menu wybieramy Project -> Add New Item. W oknie Add New Item: — z lity dostępnych szablonów wybieramy Windows Phone PortraitPage, — w polu Name wpisujemy Dodatkowe.xaml, — wciskamy przycisk Add. Na stronie Dodatkowe.xaml, w oknie XAML określamy nazwę aplikacji i strony Dla elementu TextBlock o x:Name=ApplicationTitle zmieniamy właściwość Text na Kontrolki Dla elementu TextBlock o x:Name=PageTitle zmień właściwość Text na Dodatkowe Przekierowanie do strony Dodatkowe.xaml - do strony MainPage.xaml do kontrolki StackPanel dodajemy kontrolkę HyperlinkButton przekierowującą do strony Dodatkowe.xaml. Do okna podglądu telefonu przenosimy kontrolkę HyperlinkButton i zmieniamy jej właściwość Content na Dodatkowe. Dwukrotnie klikamy kontrolkę i w metodzie hyperlinkButton1_Click dodajemy: NavigationService.Navigate(newUri("/Kontrolki; component/Dodatkowe.xaml", UriKind.Relative)); W oknie XAML dla strony Dodatkowe.xaml dodajemy kontrolkę StackPanel umożliwiającą układanie elementów w pionie i w poziomie. Następnie do StackPanel przenosimy kontrolkę ListBox i dajemy TextBlock : <TextBlock Name="tb1" Text="Pierwszy"/> <TextBlock Name="tb2" Text="Drugi"/> <TextBlock Name="tb3" Text="Trzeci"/> <TextBlock Name="tb4" Text="Czwarty"/> <TextBlock Name="tb5" Text="Piąty"/> Do StackPanel przenosimy kontrolkę Slider, a następnie przenosimy kontrolkę TextBox i właściwość Text =””. Dwukrotnie klikamy na kontrolce Slider. W metodzie slider1_ValueChanged dodajemy: textBox1.Text = e.NewValue.ToString(); Zadnia do realizacji. Aplikacja 1. - Rejestracja położenia telefonu - proszę wykorzystać podany kod. (dla pliku MainPage.xaml) (dla pliku MainPage.xaml.cs) Aplikacja 2. - Zegar - proszę wykorzystać podany kod. (dla pliku MainPage.xaml) (dla pliku MainPage.xaml.cs) Aplikacja 3. – Zmiana koloru napisu - proszę wykorzystać podany kod. (dla pliku MainPage.xaml) (dla pliku MainPage.xaml.cs) Aplikacja 4 Proszę utworzyć aplikacje, która będzie pełniła funkcję zegara. Po kliknięciu na zegar, cyfry zegara mają zmienić kolor (interfejs low-level). W sprawozdaniu powinien być umieszczony dokładny opis działania poszczególnych elementów aplikacji.