Шрифт:
Приведенный в листинге 13.6 код демонстрирует, как загрузить растровое изображение из потока встроенного ресурса в ваше приложение. В соответствии с предыдущим изложением в качестве изображения для примера используется файл MyImage.PNG. Этот код следует поместить в форму с элементами управления Button и PictureBox. Как и в предыдущих примерах, для подключения события button1_click к кнопке button1 следует дважды щелкнуть на кнопке в окне конструктора форм, в результате чего будет автоматически сгенерирован костяк функции.
При использовании изображений в приложении очень важно правильно выбрать для них формат хранения. Для крохотных битовых образов (например, 8x8 пикселей) применение сжатия смысла не имеет, поскольку они и так малы. В случае более крупных изображений можно сэкономить довольно много места по сравнению с несжатыми форматами (например, *.BMP), используя сжатые форматы с потерями (например, *.JPG) или без потерь (например, *.PNG). Несжатые фоновые изображения с размерами порядка размеров экрана могут значительно увеличить общий размер приложения. Особое внимание следует уделять выбору форматов хранения для изображений, в которых один цвет будет считаться прозрачным во время выполнения; в таких случаях необходимо использовать только форматы со сжатием без потерь. Сжатие с потерями часто позволяет сэкономить много места, но этого удается достигнуть лишь ценой ослабления контроля за каждым отдельным пикселем изображения; вы получаете лишь приближенное изображение. Растровые изображения с областями прозрачности требуют точного указания цвета каждого пикселя.
Резюме
Создание отличного пользовательского интерфейса — это трудная, однако увлекательная задача проектирования. Во-первых, вы должны либо адаптировать идею своего проекта к привычным схемам использования и форм фактору выбранного вами целевого устройства, либо выбрать подходящий тип мобильных устройств, который соответствует проектным целям. Мобильные устройства значительно отличаются от настольных компьютеров и лэптопов своим интерфейсом и стереотипом использования. Также и различные классы устройств значительно отличаются друг от друга. Попытки разработки пользовательского интерфейса, способного хорошо работать на различных устройствах, — это гарантия того, что он будет плохо работать на каждом из них. Чтобы обеспечить наилучшие условия работы для пользователя, определяйте для себя целевые мобильные устройства и оптимизируйте интерфейс мобильного приложения применительно к каждому конкретному случаю.