Малювання простих фігур – РОЗРОБКА ІГОР ДЛЯ ОС ANDROID

Якихось 150 сторінок – і ось ми вже готові намалювати перший піксел Зараз ми швидко пробіжить по деяким методам промальовування, пропонованим класом Canvas

Малювання пікселів Почнемо з малювання одного пікселя, яке здійснюється таким методом:

Перше, що кидається в очі, – координати пікселів визначені в типі float Крім того, Canvas не дає нам визначити колір безпосередньо, вимагаючи замість цього від нас екземпляр класу Paifit

Не хвилюйтеся через те, що ми визначили координати як float Canvas оснащений досить потужним інструментарієм, що дозволяє нам перемальовувати не тільки цілочисельні координати, тому метод і приймає не тільки цілі числа Поки нам, правда, подібна функціональність не потрібна ми повернемося до неї в наступному розділі

Клас Pai nt зберігає інформацію про стилі та кольорі, використовувану для малювання фігур, тексту і зображень Для малювання фігур нам цікаві тільки дві речі: колір і стиль, збережені в Paint Оскільки піксель не має стилю, сконцентруємося на кольорі Ось так виробляється ініціалізація класу Paint і установка кольору в ньому:

Створення екземпляра класу – досить нескладна вправа Метод Pai nt setARGEK теж не повинен викликати у вас труднощів Кожен його аргумент представляє один з компонентів кольору і має діапазон від 0 до 255 Таким чином, в даному випадку ми використовуємо колірну схему ARGB8888 Можна застосовувати й інший метод для установки кольору для примірника Paint:

Тут ми передаємо методу один параметр – 32-бітове ціле число Воно також закодовано у схемі ARGB8888 (в даному випадку зелена складова задана з повною непрозорістю) Крім того, клас Col or визначає кілька статичних констант, що кодують кольору (наприклад, Col or RED, Col or YELLOW) Ви можете використовувати їх, якщо не хочете оперувати шестнадцатерічнимі числами

Малювання ліній Щоб намалювати лінію, ми використовуємо наступний метод Canvas:

Перші два аргументи визначають координати початкової точки лінії, наступні два – кінцеві, останній задає примірник Paint Отримана в результаті лінія буде в один піксель завтовшки Якщо ми хочемо, щоб вона була товщі, то можемо визначити відповідне значення в Paint:

Малювання прямокутників За допомогою Canvas ми також можемо малювати прямокутники:

Перші два аргументи визначають координати лівого верхнього кута прямокутника, наступні два – координати правого нижнього кута, Paint задає стиль і колір прямокутника Що ж розуміється під стилем і як його визначити

Для установки стилю для примірника Paint використовуйте наступний метод:

Style – перерахування, що має значення Style FILL, StyleSTROKE і Style FILL ANDSTROKE Якщо ми призначимо стиль Style FILL, прямокутник буде заповнений кольором, визначеним у Paint При використанні Sty е STROKE буде промальована тільки рамка прямокутника (її колір і товщина також визначені в Paint) Стиль Sty1е FI LL AND STROKE обєднує два попередніх – прямокутник буде заповнений кольором, рамка буде намальована

Малювання кіл Кола можуть малюватися як порожніми, так і заповненими:

Перші два аргументи визначають координати центру кола, наступний аргумент – її радіус у пікселях, останній – все той же Paint Як і у випадку з методом Canvas drawRectangl е, колір і стиль Paint будуть використані для малювання кола

Ще один важливий момент, який варто памятати, – всі ці методи малювання виконують альфа-змішування Просто визначте альфа-складову кольору значенням, відмінним від 255 (Oxff), і ваші пікселі, лінії, прямокутники та кола стануть напівпрозорими

Джерело: Mario Zechner / Маріо Цехнер, «Програмування ігор під Android», пров Єгор Сидорович, Євген зазноби, Видавництво «Пітер»

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*