Опубликован: 15.06.2012 | Доступ: свободный | Студентов: 1546 / 109 | Оценка: 4.19 / 3.63 | Длительность: 07:02:00
Специальности: Программист
Лекция 3:

Аппаратные средства устройств, поддерживающих Windows Phone 7

< Лекция 2 || Лекция 3: 12 || Лекция 4 >
Аннотация: В данной лекции мы рассмотрим все необходимые аппаратные средства смартфонов на основе данной платформы, изучим применения всех возможностей данных устройств. Более подробно остановимся на работе кнопки "Назад" и переходах между страницами приложения.

Аппаратные средства

Цель лекции: Рассмотрение аппаратных средств смартфонов на основе данной платформы, разбор применения всех возможностей данных устройств. Изучение работы кнопки "Назад".

Первоначальные версии устройств Windows Phone 7 будут иметь экран одного размера. (В будущем ожидается использование еще одного размера экрана.) Присутствие многих аппаратных возможностей гарантируется на каждом устройстве.

Кнопки панели

Рис. 3.1. Кнопки панели

На фронтальной части телефона имеется дисплей, поддерживающий мультисенсорный ввод, и три кнопки, как правило, располагающиеся под дисплеем. Наименование этих кнопок в порядке слева направо:

  1. Back (Назад) Программы могут использовать эту кнопку для навигации, во многом аналогично кнопке Back в Веб-браузере. При использовании со стартовой страницы программы эта кнопка приводит к завершению программы.
  2. Start (Пуск) Эта кнопка обеспечивает переход пользователя к стартовому экрану телефона; в противном случае этот экран недоступен программам, выполняющимся на телефоне.
  3. Search (Поиск) Операционная система использует эту кнопку для запуска поиска.

Первоначальные версии устройств Windows Phone 7 имеют экран размером 480x800 пикселей. В будущем ожидается также применение экранов размером 320x480 пикселей. Никаких других вариантов для Windows Phone 7 не планируется, поэтому очевидно, что эти два размера экрана играют очень важную роль в разработке телефона.

Теоретически, лучше всего создавать программы, которые самостоятельно адаптируются к любому размеру экрана. Но это не всегда возможно, в частности, для игр. Вероятнее всего, приложения будут ориентироваться на эти два размера экрана, что будет реализовано в виде различных фрагментов кода и разных XAML-файлов для компоновки, которая зависит от размеров экрана.

Как правило, мы будем ссылаться на эти два размера, как на "большой" и "маленький" экран. Наибольший общий знаменатель горизонтального и вертикального размеров обоих экранов – 160, т.е. их можно изобразить с помощью квадратов со стороной 160 пикселов:

Экраны

Рис. 3.2. Экраны

Мы рассматриваем экраны в портретном режиме, потому что обычно именно так ориентированы экраны смартфонов. Для сравнения, экран оригинального Zune – 240x320 пикселей; Zune HD – 272x480.

Конечно, телефон можно перевернуть горизонтально и получить экран в альбомном режиме. Некоторые программы могут требовать определенной ориентации экрана телефона, другие будут более гибкими.

Разработчик полностью контролирует, в какой мере создаваемое им приложение поддерживает ориентацию экрана. По умолчанию приложения Silverlight отображаются в портретном режиме, но можно сделать так, чтобы они самостоятельно приспосабливались к изменениям ориентации экрана. Специально для целей определения изменения ориентации предусмотрены новые события, а некоторые изменения обрабатываются автоматически. Для сравнения, разработчики игр обычно задают конкретную ориентацию экрана пользователя. Программы на XNA используют альбомный режим по умолчанию, но это свойство легко переопределить.

В портретном режиме маленький экран равен половине старого VGA-экрана (т.е. 640x480).

В альбомном режиме большой экран имеет размеры, соответствующие так называемому WVGA ("wide VGA"). В альбомном режиме соотношение ширины и высоты маленького экрана составляет 3:2 или 1,5; для большого экрана это соотношение 5:3 или 1,66…. Ни одно из этих соотношений не совпадает с пропорциями телевизионного экрана, которые для телевизоров стандартного разрешения составляют 4:3 или 1,33… и для телевизоров с высоким разрешением – 16:9 или 1,77…. Соотношение высоты и ширины экрана Zune HD – 16:9.

Как и во многих современных телефонах и Zune HD, для экранов телефонов Windows Phone 7, скорее всего, будет использоваться технология ОСИД ("органический светоизлучающий диод" Organic light emitting diode, OLED), хотя это не является требованием к оборудованию. Экраны ОСИД отличаются от плоских экранов, используемых в прошлом, тем, что их энергопотребление пропорционально излучаемому свету. Например, ОСИД-экран потребляет менее половины энергии, необходимой для жидкокристаллического (ЖК) монитора того же размера, но это только в режиме, когда экран преимущественно темный. Для полностью светлого экрана ОСИД потребляет более чем в три раза больше энергии, необходимой для ЖК.

Продолжительность автономной работы имеет первостепенную важность для мобильных устройств, поэтому эта характеристика ОСИД-дисплеев предполагает применение преимущественно черных фонов с редкими графическими элементами и контрастных шрифтов. Независимо от этого пользователи Windows Phone 7 могут выбирать между двумя основными цветовыми темами: светлый текст на темном фоне или темный текст на светлом фоне.

Пользовательский ввод для программ Windows Phone 7 будет осуществляться посредством мультисенсорного ввода. Экраны поддерживают технологию емкостного касания. Это означает, что они отвечают только на прикосновение человека, но не реагируют на касание стилусом или другие формы давления. touch Экраны устройств Windows Phone 7 должны распознавать одновременное касание как минимум в четырех точках.

Аппаратные клавиатуры необязательны. Необходимо предполагать, что дизайн телефонов может быть разным, поэтому при использовании клавиатуры экран может быть либо в портретном, либо в альбомном режиме. Программа на Silverlight, использующая ввод с клавиатуры, должна реагировать на изменения ориентации экрана, чтобы пользователь мог просматривать экран и использовать клавиатуру. Также предоставляется экранная клавиатура, которую в кругах Windows-пользователей называют Soft Input Panel (Панель функционального ввода) или Soft Input Panel (SIP). В приложениях на XNA также реализовывается работа с аппаратной клавиатурой и Soft Input Panel (SIP).

Навигация между страницами

Давайте рассмотрим навигацию между страницами в Windows Phone 7 Silverlight приложениях. Данная тема важна по 2 причинам. Во-первых, Windows Phone 7 приложения практически всегда состоят из нескольких страниц, а во-вторых все телефоны на Windows Phone 7 имеют аппаратную кнопку "Назад". Это позволяет пользователю легко возвращаться на предыдущую страницу. Чуть позже мы поговорим о кнопке "Назад" более подробно.

Навигация между страницами на телефоне напоминает таковую в Web приложениях. При работе с телефоном, у нас есть больший контроль над навигацией, но с точки зрения пользователя различия минимальны. Более того, любое Silverlight приложение для Windows Phone 7 состоит как минимум из одной страницы, тогда как традиционные Silverlight приложения состоят как минимум из одного пользовательского элемента управления , внутри которого может находится фрейм для навигации между страницами.

Создадим новое приложение, подобно тому, как делали это на прошлой лекции. Назовём его Food shop. Из названия вы поняли что это магазин еды. Давайте создадим несколько страниц с категориями еды и на главной странице сделаем ссылки на них.

Чтобы добавить новые страницы в приложение нажмите в верхнем меню Project затем Add New Item и в открывшемся окне щёлкните на Windows Phone Portrait Page далее Add.

Добавление новой страницы в приложение

Рис. 3.3. Добавление новой страницы в приложение

В списке файлов справа появится файлы Page1.xaml и Page1.xaml.cs, отвечающие за работу нашей страницы. Добавим ещё три страницы. Изменим на каждой странице заголовок так, чтобы пользователь смог понять на какой странице он находится.

Перейдём к XAML коду страницы Pasta.xaml и изменим значение свойства "Text" текстового блока с именем "PageTitle" на "Овощи":

<TextBlock x:Name="PageTitle" Text="Овощи" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>

У нас будут четыре страницы: овощи, фрукты, мясо, молоко.

Изменим заголовки других страниц соответствующим образом.

Для создания ссылок между страницами мы можем использовать несколько различных подходов. Первым из них является элемент управления "HyperlinkButton" – кнопка-ссылка. Плюс данного подхода состоит в том, что нам не требуется писать C# код для навигации, а достаточно добавить одну строку в XAML разметку.

Перейдём к XAML коду страницы MainPage и в элемент управления Grid с именем "ContentPanel" добавим несколько ссылок, которые будут располагаться по вертикали одна за другой:

<StackPanel>

                <HyperlinkButton Content="Овощи" NavigateUri="/Page1.xaml"/>

                <HyperlinkButton Content="Фрукты" NavigateUri="/Page2.xaml"/>

                <HyperlinkButton Content="Мясо" NavigateUri="/Page3.xaml"/>

      </StackPanel>
Добавление ссылок на другие страницы

Рис. 3.4. Добавление ссылок на другие страницы

Запустим приложение. Попробуем нажать ссылку. Мы перемещаемся на созданные нами страницы.

Вместо использования элемента управления "HyperlinkButton" мы можем перейти на другую страницу, написав некоторый код на языке C#. Остановите отладку программы (Shift + F5). Давайте добавим после ссылок на странице MainPage.xaml кнопку:

<Button Content=" Молоко" />

Двойным кликом по кнопке в дизайнере перейдём к обработчику события нажатия данной кнопки:

private void Button_Click(object sender, RoutedEventArgs e)

Добавим код для перехода на другую страницу:

NavigationService.Navigate(new Uri("/Page4.xaml", UriKind.Relative));

Здесь используется специальный класс NavigationService, с помощью методов которого мы можем программно управлять навигацией: GoBack переходит к последней записи журнала переходов назад или создает исключение, если в журнале переходов назад нет записей.

  • GoForward Переходит к последней записи журнала переходов вперед или создает исключение, если в журнале переходов вперед нет записей.
  • Navigate Переходит к содержимому, заданному универсальным кодом ресурса (URI).
  • Refresh Перезагрузка текущей страницы.
  • StopLoading Останавливает еще не обработанные асинхронные переходы.

Запустите приложение, нажмите на кнопку, и вы перейдёте на нужную страницу

Наше приложение

Рис. 3.5. Наше приложение
< Лекция 2 || Лекция 3: 12 || Лекция 4 >