Android! Разработка мобильных


Sudokuv2/res/values/colors.xml



Pdf көрінісі
бет51/87
Дата26.01.2023
өлшемі3,48 Mb.
#63133
1   ...   47   48   49   50   51   52   53   54   ...   87
Байланысты:
Привет, Андроид Разработка мобильных приложений

 Sudokuv2/res/values/colors.xml
#ffe6f0ff
#ffffffff
#64c6d4ef
#6456648f
#ff000000
#64ff0000
#6400ff80
#2000ff80
#64ff8000
Вот о�новной карка� �етода 
onDraw
(): 
 Sudokuv2/src/org/example/sudoku/PuzzleView.java
@Override
protected void onDraw(Canvas canvas) {
// Рисование фона...
Paint background = new Paint();
background.setColor(getResources().getColor(
R.color.puzzle_background));
canvas.drawRect(0, 0, getWidth(), getHeight(), background);
// Рисование игровой доски...
// Рисование чисел...
// Рисование подсказок...
// Рисование выделения...
}
Первый пара�етр — �то объект 
Canvas
� на которо� нужно будет ри�оват�� При�
веденный код ри�ует фон для и�ры� и�пол�зуя �вет 
puzzle_background

Тепер� давайте добави� код для ри�ования решетки из линий на до�ке:
 Sudokuv2/src/org/example/sudoku/PuzzleView.java
// Рисование доски...
// Определение цветов для линий решетки
Paint dark = new Paint();
dark.setColor(getResources().getColor(R.color.puzzle_dark));
Paint hilite = new Paint();
hilite.setColor(getResources().getColor(R.color.puzzle_hilite));
Paint light = new Paint();
light.setColor(getResources().getColor(R.color.puzzle_light));
// Рисование вспомогательных линий решетки
for (int i = 0; i < 9; i++) {
canvas.drawLine(0, i * height, getWidth(), i * height,
light);
canvas.drawLine(0, i * height + 1, getWidth(), i * height
+ 1, hilite);
canvas.drawLine(i * width, 0, i * width, getHeight(),
light);


78 Глава 4 • Введение в 2D-графику
canvas.drawLine(i * width + 1, 0, i * width + 1,
getHeight(), hilite);
}
// Рисование основных линий решетки
for (int i = 0; i < 9; i++) {
if (i % 3 != 0)
continue;
canvas.drawLine(0, i * height, getWidth(), i * height,
dark);
canvas.drawLine(0, i * height + 1, getWidth(), i * height
+ 1, hilite);
canvas.drawLine(i * width, 0, i * width, getHeight(), dark);
canvas.drawLine(i * width + 1, 0, i * width + 1,
getHeight(), hilite);
}
Рис . 4 .3 . Рисование линий решетки с использованием трех оттенков серого
для создания эффекта объема
В коде и�пол�зованы три разных �вета для линий решетки: �ветлый �вет �ежду 
тайла�и� те�ный �ежду блока�и три на три и �вет под�ветки по края� каждо�о 
тайла для то�о� чтобы придат� и� ле�кий объе�ный �ффект� Порядок� в которо� 
выводят�я линии� важен� так как линии� нари�ованные позже� выводят�я поверх 
линий� выведенных ранее� Вы �ожете увидет�� на что �то похоже� на ри�� 4�3� Далее 
на� понадобят�я чи�ла для ра��тановки их внутри ячеек решетки�


4 .2 . Добавление графики к Sudoku 79
Рисование чисел
Следу��ий код выводит чи�ла �оловоло�ки поверх тайлов� Некоторая �ложно�т� 
закл�чает�я в то�� чтобы каждое чи�ло ра�положило�� точно в �ентре �оответ�тву�
��е�о тайла и приняло подходя�ий раз�ер�


Достарыңызбен бөлісу:
1   ...   47   48   49   50   51   52   53   54   ...   87




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет