4 .1 .
Основы 69
Класс Color (Цвет)
Цвета в ������� опи�ыва�т�я четыр��я чи�ла�и� по одно�у для каждо�о из кана�
������� опи�ыва�т�я четыр��я чи�ла�и� по одно�у для каждо�о из кана�
опи�ыва�т�я четыр��я чи�ла�и� по одно�у для каждо�о из кана�
лов: ал�фа�канала� кра�но�о� зелено�о и �ине�о (�RGB — �lpha� Re�� G�ee�� Blue)�
�аждый из ко�понентов являет�я во���ибитны� �елы�� то е�т� �ожет прини�ат�
256 различных значений� по�то�у �вет обычно упаковывает�я в 32�битное �елое
чи�ло� Для бол�шей �ффективно�ти в коде ������� и�пол�зу�т�я �елые чи�ла
в�е�то �кзе�пляров кла��а
Color
�
�ра�ный� зеленый и �иний �вета не нужда�т�я в о�обо� пред�тавлении�
а вот �у�но�т� ал�фа�канала требует дополнител�ных поя�нений�
Альфа-канал
(�lpha) — �то �ера прозрачно�ти� Са�ое низкое значение�
0� указывает на то� что
�ле�ент полно�т�� прозрачен� Неважно� какие значения и�е�т ко�поненты RGB�
е�ли � равно 0� Са�ое вы�окое значение� 255� указывает на то� что �ле�ент полно�
� равно 0� Са�ое вы�окое значение� 255� указывает на то� что �ле�ент полно�
равно 0� Са�ое вы�окое значение� 255� указывает на то� что �ле�ент полно�
�т�� непрозрачен� Про�ежуточные значения и�пол�зу�т�я для задания про�ве�
чива��их или� дру�и�и �лова�и� полупрозрачных �ветов� Они позволя�т видет�
не�но�о из то�о� что находит�я под объекто�� который нари�ован на передне� фоне�
Для то�о чтобы �оздат� �вет� вы �ожете и�пол�зоват� одну из �татиче�ких кон�
�тант кла��а
Color
� напри�ер:
int color = Color.BLUE; // синий цвет
или� е�ли вы знаете значения для ал�фа�канала� кра�ной� зеленой и �иней
ко�понент� то �ожете и�пол�зоват� один из �у�е�тву��их �татиче�ких �етодов�
напри�ер:
//
Полупрозрачный пурпурный
color = Color.argb(127, 255, 0, 255);
Лучше будет объявит� в�е ваши �вета в ре�ур�но� файле XML� Это обле�чит
наши дей�твия в то� �лучае� е�ли позже �ы реши� что�то по�енят�:
#7fff00ff
Вы �ожете обра�ат��я к �вета� по и�ена� в дру�их XML�файлах� как �ы де�
XML�файлах� как �ы де�
�файлах� как �ы де�
лали в �лаве 3� или и�пол�зоват� и�ена в Java�коде� напри�ер:
color = getResources().getColor(R.color.mycolor);
Метод
getResource()
возвра�ает кла��
ResourceManager()
для теку�ей деятел��
но�ти� а
getColor()
запрашивает у �енеджера пои�к �вета� заданно�о в �D ре�ур�а�
Класс Paint (Рисование)
Один из важнейших кла��ов �рафиче�кой библиотеки ������� — �то кла��
Paint
�
Он хранит �тили� �вета и дру�у� инфор�а�и�� необходи�у� для ри�ования �рафи�
че�ких объектов� в то� чи�ле битовые изображения� тек�т� �ео�етриче�кие фи�уры�
Обычно ко�да вы ри�уете что�то на �кране и хотите нари�оват� �то �плошны�
�вето�� вы у�танавливаете �тот �вет � по�о��� �етода
Paint .setColor() .
70 Глава 4 • Введение в 2D-графику
Напри�ер:
cPaint.setColor(Color.LTGRAY);
Зде�� и�пол�зовано предопределенное значение для �ветло��еро�о �вета�
Объект Canvas (Холст)
�ла��
Canvas
пред�тавляет �обой поверхно�т�� на которой вы ри�уете� Обычно
«хол�ты» изначал�но не и�е�т никако�о �одержи�о�о� как пу�тые пленки для
проекторов� Методы кла��а
Canvas
позволя�т ри�оват� линии� пря�оу�ол�ники�
кру�и или дру�ие произвол�ные �рафиче�кие объекты на пло�ко�ти�
В ������� �кран ди�плея захватывает�я деятел�но�т�� (
Activity
)� которая �о�
держит окно про��отра� или в��вер (
View
)� которое в �во� очеред� �одержит хол�т
(
Canvas
)� У ва� е�т� воз�ожно�т� ри�оват� на �тих хол�тах� переопределяя �етод
View .onDraw()
� Един�твенный пара�етр для
onDraw()
— �то объект
Canvas
� на которо�
вы ри�уете�
Вот при�ер деятел�но�ти� названной
Graphics
� которая �одержит окно про��отра�
называе�ое
GraphicsView
:
public class Graphics extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new GraphicsView(this));
}
static public class GraphicsView extends View {
public GraphicsView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
// Здесь
начинаются команды рисования
}
}
Достарыңызбен бөлісу: