我使用基于图块的方法渲染非常大的图像。我使用的是SurfaceView
和onDraw
。
我的问题是当我渲染瓷砖时,它们一次渲染一个。所以,如果我有4个瓷砖,而不是一次全部4个渲染,使它看起来像一次渲染的完整图像,我最终看到左上角,左下角,右上角然后右下角。
我在onDraw之外生成位图。唯一认为onDraw会迭代我的切片列表并为每个切片调用canvas.Drawbitmap
。
我无法将这些图块组合成一个位图然后绘制它。请记住,我正在处理一个大图像,这就是首先拼贴的原因。
有什么建议吗?感谢
编辑:根据要求添加代码段
Paint paint = new Paint();
// Render all loaded tiles. LinkedHashMap used for bottom up rendering - lower res tiles underneath.
paint.setAntiAlias(true);
paint.setFilterBitmap(true);
paint.setDither(true);
for (Map.Entry<Integer, List<Tile>> tileMapEntry : tileMap.entrySet()) {
if (tileMapEntry.getKey() == sampleSize || hasMissingTiles) {
for (Tile tile : tileMapEntry.getValue()) {
if (!tile.loading && tile.bitmap != null) {
Rect rectToDraw = convertRect(sourceToViewRect(tile.sRect));
canvas.drawBitmap(tile.bitmap, null, rectToDraw, paint);
}
}
}
}