Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework
- Название:Программирование мобильных устройств на платформе .NET Compact Framework
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2006
- Город:Москва • Санкт-Петербург • Киев
- ISBN:5-8459-0989-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework краткое содержание
Книга известного профессионала в области компьютерных технологий посвящена разработке приложений для широкого спектра мобильных устройств с использованием популярной и постоянно развивающейся платформы .NET Compact Framework. Уникальность этой книги состоит в том, что в ней гармонично переплетены теоретические сведения обо всем цикле разработки программного обеспечения с практическими примерами применения на языках С# и Visual Basic. Подробно рассматриваются концепции, лежащие в основе самой платформы .NET Compact Framework, а также вопросы, связанные с созданием эффективного пользовательского интерфейса, управлением памятью, производительностью и надежностью. Немалое внимание уделяется практическим аспектам разработки приложений для мобильных устройств, среди которых выбор модели представления и доступа к данным, внедрение коммуникационной модели, реализация модели поведения с помощью конечных автоматов и использование XML.
Книга рассчитана на разработчиков разной квалификации, а также может быть полезна для студентов и преподавателей соответствующих специальностей.
Программирование мобильных устройств на платформе .NET Compact Framework - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
End If
End Sub
'----------------------------------------------------------------
'Размеры наших битовых образов и экранного изображения PictureBox
'----------------------------------------------------------------
Const bitmap_dx As Integer = 200
Const bitmap_dy As Integer = 100
'-------------------------------------------------
'Создает и прорисовывает изображение заднего плана
'-------------------------------------------------
Private m_backgroundBitmap As System.Drawing.Bitmap
Sub CreateBackground()
If (m_backgroundBitmap Is Nothing) Then
m_backgroundBitmap = New Bitmap(bitmap_dx, bitmap_dy)
End If
'Делаем битовую карту белой
Dim gfx As System.Drawing.Graphics
gfx = System.Drawing.Graphics.FromImage(m_backgrourdBitmap)
gfx.Clear(System.Drawing.Color.White)
'Рисуем текст черным
Dim myBrush As System.Drawing.Brush
myBrush = New System.Drawing.SolidBrush( _
System.Drawing.Color.Black)
Dim у As Integer
For у = 0 To bitmap_dy Step 15
gfx.DrawString("I am the BACKGROUND IMAGE...hello", Me.Font, myBrush, 0, y)
Next
'Очистить
myBrush.Dispose()
gfx.Dispose()
End Sub
'-------------------------------------------------
'Создает и прорисовывает изображение заднего плана
'-------------------------------------------------
Private m_foregroundBitmap As System.Drawing.Bitmap
Sub CreateForeground()
If (m_foregroundBitmap Is Nothing) Then
m_foregroundBitmap = New Bitmap(bitmap_dx, bitmap_dy)
End If
'Делаем всю битовую карту синей
Dim gfx As System.Drawing.Graphics
gfx = System.Drawing.Graphics.FromImage(m_foregroundBitmap)
gfx.Clear(System.Drawing.Color.Blue)
'Рисуем несколько фигур желтым
Dim yellowBrush As System.Drawing.Brush
yellowBrush = New System.Drawing.SolidBrush( _
System.Drawing.Color.Yellow)
gfx.FillEllipse(yellowBrush, 130, 4, 40, 70)
gfx.FillRectangle(yellowBrush, 5, 20, 110, 30)
gfx.FillEllipse(yellowBrush, 60, 75, 130, 20)
'Очистить
yellowBrush.Dispose()
gfx.Dispose()
End Sub
'-----------------------------------------------------------------
'Устанавливает размеры и местоположение PictureBox с левой стороны
'-----------------------------------------------------------------
Private Sub SetPictureBoxDimensions()
PictureBox1.Width = bitmap_dx
PictureBox1.Height = bitmap_dy
PictureBox1.Left = 20
End Sub
'---------------------------------------------------------------------
'ОБРАБОТЧИК СОБЫТИЙ: Отобразить изображение ЗАДНЕГО ПЛАНА в PictureBox
'---------------------------------------------------------------------
Private Sub buttonDrawBackground_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles buttonDrawBackground.Click
SetPictureBoxDimensions()
CreateBackground()
PictureBox1.Image = m_backgroundBitmap
End Sub
'-----------------------------------------------------------------------
'ОБРАБОТЧИК СОБЫТИЙ: Отобразить изображение ПЕРЕДНЕГО ПЛАНА в PictureBox
'-----------------------------------------------------------------------
Private Sub buttonDrawForeground_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles buttonDrawForeground.Click
SetPictureBoxDimensions()
CreateForeground()
PictureBox1.Image = m_foregroundBitmap
End Sub
'-----------------------------------------------------------------------
'ОБРАБОТЧИК СОБЫТИЙ: Наложить изображение ПЕРЕДНЕГО ПЛАНА на изображение
' ЗАДНЕГО ПЛАНА. Использовать МАСКУ ПРОЗРАЧНОСТИ, чтобы желтый
' цвет в изображении ПЕРЕДНЕГО ПЛАНА стал прозрачным и через
' него можно было видеть содержимое изображения
' ЗАДНЕГО ПЛАНА
'------------------------------------------------------------------------
Private Sub buttonDrawBackgroundPlusForeground_Click(ByVal _
sender As Object, ByVal e As System.EventArgs) _
Handles buttonDrawBackgroundPlusForeground.Click
SetPictureBoxDimensions()
CreateForeground()
CreateBackground()
'Получить объект Graphics изображения ЗАДНЕГО ПЛАНА, поскольку
'именно поверх него мы собираемся рисовать.
Dim gfx As System.Drawing.Graphics
gfx = System.Drawing.Graphics.FromImage(m_backgroundBitmap)
'-------------------------------------------------------
'Создать класс ImageAttributes. Этот класс позволяет нам
'задать прозрачный цвет на наших операций рисования
'-------------------------------------------------------
Dim trasparencyInfo As System.Drawing.Imaging.ImageAttributes
trasparencyInfo = New System.Drawing.Imaging.ImageAttributes
'----------------------
'Задать прозрачный цвет
'----------------------
trasparencyInfo.SetColorKey(System.Drawing.Color.Yellow, _
System.Drawing.Color.Yellow)
'Задать прямоугольник рисунка
Dim rect As System.Drawing.Rectangle = _
New System.Drawing.Rectangle(0, 0, _
m_backgroundBitmap.Width, m_backgroundBitmap.Height)
'-----------------------------------------------------------------------
'Нарисовать изображение ПЕРЕДНЕГО ПЛАНА поверх изображения ЗАДНЕГО ПЛАНА
'и использовать прозрачный цвет в ImageAttributes для создания окна
'прозрачности, через которое виден задний план
'-----------------------------------------------------------------------
gfx.DrawImage(m_foregroundBitmap, rect, 0, 0, _
m_foregroundBitmap.Width, m_foregroundBitmap.Height, _
System.Drawing.GraphicsUnit.Pixel, trasparencyInfo)
'Очистить
gfx.Dispose()
'Показать результат в виде растрового изображения
PictureBox1.Image = m_backgroundBitmap
End Sub
'-----------------------------------------------------------
'Загрузить изображение и отобразить его в объекте PictureBox
'-----------------------------------------------------------
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
LoadImageFromResource()
PictureBox1.Image = m_myBitmapImage
End Sub
Private m_myBitmapImage As System.Drawing.Bitmap
'------------------------------------------------------------------
'Загрузить изображение, которое хранится в виде встроенного ресурса
'в нашей сборке
'------------------------------------------------------------------
Public Sub LoadImageFromResource()
'Если изображение уже загружено,
'то не имеет смысла делать это повторно.
If Not (m_myBitmapImage Is Nothing) Then
Return
End If
'----------------------------------------------------
'Получить ссылку на двоичную сборку нашего приложения
'----------------------------------------------------
Dim thisAssembly As System.Reflection.Assembly = _
System.Reflection.Assembly.GetExecutingAssembly()
'-------------------
'Получить имя сборки
'-------------------
Dim thisAssemblyName As System.Reflection.AssemblyName = _
thisAssembly.GetName()
Dim assemblyName As String = thisAssemblyName.Name
'-----------------------------------------------------------------------
'Извлечь поток изображения из нашей сборки и создать соответствующую ему
'битовую карту в памяти
'ПРИМЕЧАНИЕ: Имя потока ресурса ResourceStream ЧУВСТВИТЕЛЬНО К РЕГИСТРУ,
' поэтому имя изображения должно В ТОЧНОСТИ совпадать с именем
' файла изображения, который вы добавили в проект
'-----------------------------------------------------------------------
m_myBitmapImage = New System.Drawing.Bitmap( _
thisAssembly.GetManifestResourceStream( _
assemblyName + ".MyImage.PNG"))
End Sub
Примеры к главе 14 (данные)
Интервал:
Закладка: