}
// Состояние батареи
string strBatteryState = 'Состояние батареи: ';
if ((batteryState & BatteryState.Normal) == BatteryState.Normal)
strBatteryState += 'Нормальное';
if ((batteryState & BatteryState.NotPresent) == BatteryState.NotPresent)
strBatteryState += 'Батарея отсутствует ';
if ((batteryState & BatteryState.Charging) == BatteryState.Charging)
strBatteryState += 'Заряжается ';
if ((batteryState & BatteryState.Low) == BatteryState.Low)
strBatteryState += 'Низкий заряд ';
if ((batteryState & BatteryState.Critical) == BatteryState.Critical)
strBatteryState += 'Критическое';
MessageBox.Show(strBatteryLevel + '
' + strBatteryState);
}
Мультимедиа
Система Windows Mobile 5.0 обеспечивает еще более глубокую поддержку мультимедиа, чем предыдущие версии операционных систем. Теперь разработчики имеют возможность напрямую работать с фотокамерой, встраивая в свои программы взаимодействие с камерой и обработку картинок и видеороликов. Технология Microsoft DirectShow дает возможность управлять потоковыми мультимедийными материалами. Программа Microsoft Windows Media Player 10 Mobile позволяет интегрировать функциональность музыкального плеера в собственные приложения. Технология Microsoft DirectDraw предоставляет доступ к графической системе на более высоком уровне, а библиотека Microsoft Direct3D позволяет создавать очень сложные динамические игры, используя управляемый код. Эти возможности стоит рассмотреть подробнее.
Выбор изображения
В операционной системе Windows Mobile 5.0 стало поразительно легко работать с коллекцией фотографий и рисунков. При помощи стандартного диалогового окна выбора рисунка можно легко выбрать нужный рисунок. Доступ к стандартному окну выбора рисунка осуществляется при помощи класса Microsoft.WindowsMobile.Forms.SelectPictureDialog
.
Но лучше работу с диалоговым окном выбора картинки рассмотреть на примере. На форме надо разместить метку lblSelectedPicture
и графическое поле picSelectImage
. Не забудьте перед началом создания приложения установить ссылку на пространство имен Microsoft.WindowsMobile.Forms
. Соответствующий код приведен в листинге 10.16.
private void butSelectPicture_Click(object sender, EventArgs e) {
SelectPictureDialog selectPictureDialog = new SelectPictureDialog();
// Задаем фильтр
selectPictureDialog.Filter = 'Рисунки(*.BMP;*.JPG)|*.BMP;*.JPG';
// Задаем папку для обзора
selectPictureDialog.InitialDirectory = Windows';
// Заголовок для диалогового окна
selectPictureDialog.Title = 'Выберите рисунок';
if (selectPictureDialog.ShowDialog() = DialogResult.OK &&
selectPictureDialog.FileName.Length > 0) {
// Получим расширение выбранного файла
string fileExtension = Path.GetExtension(selectPictureDialog.FileName);
// Выводим путь выбранного файла
lblSelectedPicture.Text = 'Выбранный файл: ' +
selectPictureDialog.FileName;
// Если выбран файл JPG, то выводим на экран
if (fileExtension.ToLower() == '.jpg')
picSelectedImage.Image = new Bitmap(selectPictureDialog.FileName);
}
}
В начале работы создается объект SelectPictureDialog
, а затем для него задаются нужные свойства. С помощью свойства Filter
ограничивается выбор файлов. Пользователь может загружать изображения с расширениями .BMP
и .JPG
. Затем указывается стартовая папка. Строго говоря, в Windows Mobile для хранения картинок используется папка Мои картинки
. Но приложение, работающее с изображениями, может использовать свою собственную папку.
Рис. 10.11. Выбор изображения
Потом в заголовке диалогового окна выводится текст, поясняющий пользователю дальнейшие действия. Это был минимально необходимый при использовании класса SelectPictureDialog
код.
Если пользователь выбрал картинку и нажал на кнопку OK
, то надо распознать выбранный файл. С помощью метода Path.GetExtension
можно получить расширение файла. В текстовой метке lblSelectedPicture
отображается полный путь к выбранному файлу, а в графическом поле picSelectedImage
размещается сама картинка. Но для этого она должна иметь расширение .JPG
(рис. 10.11).
Следует обратить внимание на то, что диалоговое окно выбора рисунка позволяет выбирать картинки из любой папки устройства.
Работа с фотокамерой
Мобильные устройства все чаще снабжаются фотокамерами. Причем многие пользователи отсутствие камеры на смартфоне считают очень большим недостатком. Система Windows Mobile 5.0 предлагает поддержку работы с камерой, чтобы разработчики могли использовать ее возможности в своих приложениях.
Диалоговое окно захвата изображения позволяет интегрировать фотографии и видеоматериал в приложения. При этом разработчик получает возможность управлять поведением камеры. Доступ к возможностям камеры осуществляется при помощи класса Microsoft.WindowsMobile.Forms.CameraCaptureDialog
. Класс CameraCaptureDialog
очень похож на класс SelectPictureDialog
.
Свойство Mode
позволяет управлять режимом съемки. Камера может работать, как обычный фотоаппарат, что задается значением CameraCaptureMode.Still
, или записывать видеоролик. Диалоговое окно вызывается методом ShowDialog
, который возвращает