Страница 1 из 1

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

Добавлено: 17 мар 2014, 03:00
damager82
В этом уроке:
- используем Region


Click here to read this article!

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

Добавлено: 11 июн 2014, 11:41
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" />

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

Добавлено: 21 июн 2014, 13:52
vvSector
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();
И все работает как в примере!

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

Добавлено: 17 май 2015, 16:10
alexmx
А как круглый регион сделать неподскажите?

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

Добавлено: 06 дек 2015, 22:56
mrDach
Доброго времени суток.
Стоит задача написать тетрис. На просторах сети нашел достаточное количество как примеров так и уже готовых. Так что с логикой и общим устройством игры проблем нет. Но одно из дополнительных заданий, нарисовать на фоне фигурок какие то картинки, оказалось не подъемным.
На данный момент каждая фигурка состоит из 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, так что буду рад любым замечаниям и советам.