0

我想在 Android 上创建一个热图,并尝试生成一个图块以使用 getTile 返回,但找不到任何关于从一个较小的图像动态生成大图像的信息。是否有任何教程或代码片段?

另外,如果这不是解决此问题的方法,也请告诉我。由于我正在动态生成磁贴,因此无法使用 urlprovider,因此我无法找到某人动态生成磁贴的单个示例。

4

1 回答 1

1

如果您想通过裁剪、调整大小等从另一个位图创建位图,您将需要使用 Canvas:

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

第二个和第三个参数在源位图(从中复制部分或整个图像)和结果位图(您正在向其绘制图像)内有矩形。

但是,如果您正在绘制热图,您可能会发现只绘制颜色的小矩形而不是复制其他位图更容易(这在计算上更难)。您以相同的方式创建 Canvas,但不是调用 drawBitmap,而是调用 drawRect:

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

剩下的就是根据热图中区域的值使用颜色,使用位置(通过正确生成矩形,你就完成了:)

希望这可以帮助!

于 2013-09-25T00:24:20.327 回答