marano software
DESCRIPTION
Windows Mobile 6.5 - мощная платформа для создания привлекательного и функционального интерфейса в ваших мобильных приложениях. Marano Software. Microsoft RUS. Марат Бакиров. Виталий Дильмухаметов. Вопросы. Может ли Windows Mobile приложение выглядеть красиво? - PowerPoint PPT PresentationTRANSCRIPT
http://msplatforma.ru
Microsoft Платформа 2010 2
Windows Mobile 6.5 - мощная платформа для создания привлекательного и функционального интерфейса в ваших мобильных приложениях
Marano SoftwareMicrosoft RUS
Марат БакировВиталий
Дильмухаметов
http://msplatforma.ru
Microsoft Платформа 2010 3
Вопросы
Может ли Windows Mobile приложение выглядеть красиво?Кто из Вас имеет опыт native (C++) разработки для Windows Mobile?Кто из Вас имеет опыт разработки на .NET CF?Кто из Вас знает что такое pinvoke?.
http://msplatforma.ru
Microsoft Платформа 2010 4
Содержание
Тенденции мобильных интерфейсовПолупрозрачность и градиентUI FrameworkПоддержка жестов в WM 6.5Управляемая обертка для жестовСоздание Widgets
http://msplatforma.ru
Microsoft Платформа 2010 6
Вопрос
Что такое красивое приложение?
http://msplatforma.ru
Microsoft Платформа 2010 7
Тенденции интерфейсов
http://msplatforma.ru
Microsoft Платформа 2010 8
Тенденции интерфейсов
http://msplatforma.ru
Microsoft Платформа 2010 9
Тенденции интерфейсов
http://msplatforma.ru
Microsoft Платформа 2010 10
Тенденции интерфейсов
http://msplatforma.ru
Microsoft Платформа 2010 11
Тенденции интерфейсов - выводы
Прозрачные изображенияПрямоугольные элементы с закругленными угламиЭлементы с градиентной заливкойФоновые изображения
http://msplatforma.ru
Microsoft Платформа 2010 12
Прозрачность бывает разная
Прозрачный цветПрозрачный рендеринг изображения
http://msplatforma.ru
Microsoft Платформа 2010 13
Осуществление прозрачности
Фон изображения закрашивается каким-либо цветом и обьявляется прозрачным
Поддерживается в .NET CF:
ImageAttributes attr = new ImageAttributes();
attr.SetColorKey(Color.Red, Color.Red); e.Graphics.DrawImage(bmp, destRect, 0, 0, bmp.Width, bmp.Height, GrahicsUnit.Pixel, attr)
http://msplatforma.ru
Microsoft Платформа 2010 14
Осуществление прозрачности
Все изображение прозрачноеСмешивание по альфа-каналу
Поддерживаеться Windows Mobile платформой:
[DllImport("coredll.dll") extern public static Int32 AlphaBlend(IntPtr hdcDest,
Int32 xDest, Int32 yDest, Int32 cxDest, Int32 cyDest, IntPtr hdcSrc, Int32 xSrc, Int32 ySrc, Int32 cxSrc, Int32 cySrc, BlendFunction blendFunction);
http://msplatforma.ru
Microsoft Платформа 2010 15
Осуществление прозрачности
Изображение содержит альфа-канал
Поддерживаеться Windows Mobile платформой через Imaging API’s COM интерфейсы:
IImagingFactory IImage
http://msplatforma.ru
Microsoft Платформа 2010 16
Градиентная заливка
Создается смешиванием двух или нескольких цветов, причем один цвет плавно переходит в другой.Поддерживаеться Windows Mobile платформой:
[DllImport("coredll.dll")]
public extern static bool GradientFill( IntPtr hdc, TRIVERTEX[] pVertex, uint dwNumVertex, GRADIENT_RECT[] pMesh, uint dwNumMesh, uint dwMode);
http://msplatforma.ru
Microsoft Платформа 2010 17
Как?http://code.msdn.microsoft.com/uiframework
Msdn.UIПрозрачность, градиенты, title bar
Подстройка существующего UI.DataGrid, ListView, CustomBorder.
http://msplatforma.ru
Microsoft Платформа 2010 18
Виталий Дильмухаметов
Marano Software
Демонстрация
UI Framework
http://msplatforma.ru
Microsoft Платформа 2010 19
Поговорим о жестах
Жесты это не только касание, но и взаимодействие.Касание пальцем не является точным:
Форма и размерРазная скорость и угол движенияМенее точное чем пером (stylus)
http://msplatforma.ru
Microsoft Платформа 2010 20
WM 6.5 элементы управления и жесты
ListviewListbox (включая combo)WebviewTreeviewTab (прокрутки налево/направо чтобы поменять страницу)
http://msplatforma.ru
Microsoft Платформа 2010 21
Как жесты работают в WM 6.5
Жесты!= Mouse MessagesЖесты, доставляются к окну первого касаниясообщение WM_GESTUREwParam Содержит код типа жестаlParam Содержит GESTUREINFO структуру
http://msplatforma.ru
Microsoft Платформа 2010 22
Поддерживаемые типы жестов
Панорамирование (Pan)Прокрутка (Scroll) – Инерция после панорамированияВыбор (tap)Двойной выбор (Double-tap)Задержка (Hold)
http://msplatforma.ru
Microsoft Платформа 2010 23
Managed WrapperGestureRecognizer
Добавляется к System.Windows.Forms.ControlРаботает чере P/InvokeИспользует сообщения WM_GESTUREПредоставляет управляемые (.NET) события
var g = new GestureRecognizer();g.TargetControl = panel1;g.Select += (sender, GestureEventArgs e) => …g.DoubleSelect += (sender, GestureEventArgs e) => …g.Hold += (sender, GestureEventArgs e) => …g.Pan += (sender, GestureEventArgs e) => …g.Scroll += (sender, GestureScrollEventArgs e) => …
http://msplatforma.ru
Microsoft Платформа 2010 24
Physics Engine
Обеспечивает “естественное” ощущение во время прокрутки.Продолжает прокрутку и уменьшает скорость в зависимости от начального ускорения.Обеспечивает эффект растянутой резины.Также обеспечивает допустимую остановку основаную на размере елемента.
http://msplatforma.ru
Microsoft Платформа 2010 26
Managed WrapperPhysicsEngine
Использует PhsyicsEngine API через P/InvokeПредоставляет управляемое событие AnimateFrame
var p = new PhysicsEngine();p.ExtentControl = pictureBox1;p.ViewportControl = panel1;…g.Scroll += (sender, GestureScrollEventArgs e){ p.Stop(); p.Angle = e.Angle; p.Velocity = e.Velocity; p.Start(); // or p.Start(e.Angle, e.Velocity);};
http://msplatforma.ru
Microsoft Платформа 2010 27
Автоматические жесты (WAG)
Автоматизирует сценарии использования жестов.Поддерживается любым окном со стилем WS_VSCROLL или WS_HSCROLLПоддерживает отправку WM_VSCROLL/WM_HSCROLL сообщений или анимации
http://msplatforma.ru
Microsoft Платформа 2010 28
Managed WrapperAutoGestureContext
Работает через WAGI API и P/InvokeУправляемое событие Status и OwnerAnimate
var wag = AutoGestureContext.GetContext(panel1);wag.IsOwnerAnimated = true;wag.HorizontalExtent = 10; // percentwag.OwnerAnimate += (sender, AutoGestureAnimateEventArgs e){ pictureBox1.Location = e.Location;};wag.Status += (sender, AutoGestureStatusEventArgs e){ label1.Text = e.Status.ToString() + “ “ + e.ExtraStatus.ToString();};
http://msplatforma.ru
Microsoft Платформа 2010 29
Марат Бакиров
Microsoft Rus.
Демонстрация
Gesture Framework
http://msplatforma.ru
Microsoft Платформа 2010 30
Что такое Widget?Небольшoe одноцельное мини-приложениe
http://msplatforma.ru
Microsoft Платформа 2010 31
Widgets на мобильных устройствах
http://msplatforma.ru
Microsoft Платформа 2010 32
Что они могут делать?
Выглядят также как и родные приложенияДоступ к ограниченым данным устройства за пределами изолированной программной средыПолная поддержка AJAX, родной JSON парсер, можно использовать элементы управления ActiveX (как Flash)
http://msplatforma.ru
Microsoft Платформа 2010 33
Что там под капотом?
Widget Package
Widgets RuntimePowered by
Internet Explorer Mobile
Web Rendering
Engine
Plug-ins
Script Engine
JavaScriptDevice Extensions
Flash
MSXML
Windows Media
SettingsStorage
…
…
Secu
rity
Brok
er
Menu
HTML
JavaScript
CSS
Images
XML Manifest
http://msplatforma.ru
Microsoft Платформа 2010 34
За пределами изолированной программной средыДоступ к информации о текущем
состоянии устройстваCradlePresentPhoneHomeServicePhoneRoamingPhoneSignalStrengthPhoneOperatorNameDisplayRotationPowerBatteryStrengthPowerBatteryState
http://msplatforma.ru
Microsoft Платформа 2010 35
Создание Widgetов
1 2 3
Create Package
Deploy
Design and develop the user
experience
Distribute it on the Windows Marketplace
Create the XML
Manifest Transfer to device and
install
Package as Zip,
renamed to .widget
http://msplatforma.ru
Microsoft Платформа 2010 36
Виталий Дильмухаметов
Marano Software
Демонстрация
Создание простого Widget(a)
http://msplatforma.ru
Microsoft Платформа 2010 37
Итоги
Тенденции мобильных интерфейсовПолупрозрачность и градиентUI FrameworkПоддержка жестов в WM 6.5Управляемая обертка для жестовСоздание Widgets
http://msplatforma.ru
Microsoft Платформа 2010 38
Ресурсы ENG
UI Framework: http://code.msdn.microsoft.com/
uiframeworkGesture Framework:
http://code.msdn.microsoft.com/gestureswmРазработка Widgets:
http://msdn.microsoft.com/en-us/library/dd721906.aspx
http://msplatforma.ru
Microsoft Платформа 2010 39
Ресурсы RUS
Руссский блог Windows Mobilehttp://blogs.msdn.com/windowsmobile_ru/
Конкурс приложений для Windows Mobilewww.wmdev.ru
http://msplatforma.ru
Microsoft Платформа 2010 40
Вопросы
Марат Бакировhttp://blogs.msdn.com/mbakirov
Виталий Дильмухаметовhttp://blogs.gotdnotnet.ru/personal/grp
{Александр Яхнин}http://blogs.msdn.com/priozersk/
Вы сможете задать вопросы докладчику в зоне «Спроси эксперта» в течение часа после завершения этого доклада