Урок 147. Рисование. Region

Обсуждение уроков
Ответить
Аватара пользователя
damager82
Администратор
Сообщения: 1383
Зарегистрирован: 07 янв 2012, 11:32
Контактная информация:

Урок 147. Рисование. Region

Сообщение damager82 » 17 мар 2014, 03:00

В этом уроке:
- используем Region


Click here to read this article!
Последний раз редактировалось damager82 29 май 2017, 23:24, всего редактировалось 3 раза.
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение

RomanNT
Сообщения: 7
Зарегистрирован: 08 июл 2013, 16:58

Re: Урок 147. Рисование. Region

Сообщение RomanNT » 11 июн 2014, 11:41

Пример сделан под Build Target: API 10: Android 2.3.3.
Но если поставить Build Target: API 19: Android 4.4 - пример не работает.
Синяя итоговая область региона не выводится.

Т.е., пример работает, если в манифесте:

<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="10" />

И не работает, если в манифесте:

<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="19" />

Аватара пользователя
vvSector
Сообщения: 3
Зарегистрирован: 21 сен 2013, 19:09

Re: Урок 147. Рисование. Region

Сообщение vvSector » 21 июн 2014, 13:52

RomanNT писал(а):Пример сделан под Build Target: API 10: Android 2.3.3.
Но если поставить Build Target: API 19: Android 4.4 - пример не работает.
Синяя итоговая область региона не выводится.

Т.е., пример работает, если в манифесте:

<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="10" />

И не работает, если в манифесте:

<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="19" />
Чтобы все заработало, достаточно закрыть путь (path). Т.е. в данном примере нужно вместо:

Код: Выделить всё

pathDest = region.getBoundaryPath();
Написать:

Код: Выделить всё

pathDest = region.getBoundaryPath();
pathDest.close();
И все работает как в примере!

Аватара пользователя
alexmx
Сообщения: 193
Зарегистрирован: 10 мар 2014, 08:14

Re: Урок 147. Рисование. Region

Сообщение alexmx » 17 май 2015, 16:10

А как круглый регион сделать неподскажите?

mrDach
Сообщения: 1
Зарегистрирован: 06 дек 2015, 22:26

Re: Урок 147. Рисование. Region

Сообщение mrDach » 06 дек 2015, 22:56

Доброго времени суток.
Стоит задача написать тетрис. На просторах сети нашел достаточное количество как примеров так и уже готовых. Так что с логикой и общим устройством игры проблем нет. Но одно из дополнительных заданий, нарисовать на фоне фигурок какие то картинки, оказалось не подъемным.
На данный момент каждая фигурка состоит из 4 квадратиков, а все упавшие фигурки образуют одну большую. Они хранятся в виде булевых матриц. Из мыслей было собрать из уже существующих прямоугольников регион, ним ограничить область рисования(clipRegion) и туда нарисовать картинку. Но не пойму как так сделать.
Выкладывать код всего проекта не вижу смысла. Вот код метода который занимается рисованием.

Код: Выделить всё

	public void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		canvas.drawColor(bgColor);
		region.setEmpty();
		p.setColor(fgColor);
		
		//рисуем уже упавшие фигуры
		for (int row = 1; row < field.length-1; ++row){
			for (int column = 1; column < field[row].length-1; ++column){
				if (field[row][column]){
					region.op(
							(BRICK_GAP_SIZE+BRICK_SIZE)*(column - 1), 
							(BRICK_GAP_SIZE+BRICK_SIZE)*(row - 1), 
							(BRICK_GAP_SIZE+BRICK_SIZE)*(column) - BRICK_GAP_SIZE, 
							(BRICK_GAP_SIZE+BRICK_SIZE)*(row) - BRICK_GAP_SIZE, Region.Op.UNION
							);
					canvas.clipRegion(region);
					canvas.drawBitmap(
							bitmap, 
							(BRICK_GAP_SIZE+BRICK_SIZE)*(column - 1),
							(BRICK_GAP_SIZE+BRICK_SIZE)*(row - 1), 
							p);
				}
			}
		}
		//рисуем падающие фигуры
		figure.DrawFigure(canvas,p,bitmap);
	}
И да изучаю андроид недавно параллельно с в общем java, так что буду рад любым замечаниям и советам.

Ответить