2013-09-25 1 views
0

Я хочу создать карту тепла на Android и пытаюсь сгенерировать плиту, чтобы вернуться с помощью getTile, но ничего не могу найти о динамическом создании большого изображения из меньшего, скопированного в него кучу раз. Есть ли для этого учебники или фрагменты кода?Динамическое создание плитки для TileProvider

Кроме того, если это не так, расскажите мне об этом. Поскольку я динамически генерирую плитку, я не могу использовать urlprovider, я просто не могу найти ни одного примера, когда кто-то генерирует плитки динамически.

ответ

1

Если вы хотите создать растровое изображение из другого растрового изображения кадрирования, изменения размера, и т.д., вы собираетесь хочет использовать Canvas:

Canvas canvas = new Canvas(resultBitmap); //Result Bitmap will be what you end up drawing. 
canvas.drawBitmap(otherBitmap, areaFromOtherBitmapToCopyRect, areaInResultBitmapToDrawRect, paint); 

2-й и 3-й параметров есть прямоугольники внутри источника растровое изображение (из которого вы копируете часть или изображение целиком) и растровое изображение результата (к которому вы рисуете изображение).

Однако, если вы рисуете тепловую карту, вам может быть проще просто нарисовать маленькие прямоугольники цветов вместо копирования других растровых изображений (что усложняется сложнее). Вы создаете холст таким же образом, но вместо вызова drawBitmap, вызовите DrawRect:

Paint redPaint = new Paint(); 
redPaint.setColor(0xFFFF0000); //This will be red. The 1st FF is for alpha. 
canvas.drawRect(someAreaInTheResultRect, redPaint); 

Все, что осталось, чтобы играть с цветами в соответствии с величиной площади в тепловой карте, играть с позиции (путем создания правильных ошибок, и все готово :)

Надеюсь, это поможет!