如何在代码中从许多较小的Bitmap创建一个大的Bitmap?

时间:2016-02-10 21:32:05

标签: java android canvas bitmap

for (int i = 0; i < mYTileCount; i++) {
            for (int j = 0; j < mXTileCount; j++) {
                int num = mTileGrid[j][i];
                canvas.drawBitmap(Bitmap.createScaledBitmap(mTileArray[num],              mTileSize, mTileSize, false), mXOffset, mYOffset, mPaint);
                mXOffset+=mTileSize;
            }
            mXOffset = 0;
            mYOffset+=mTileSize;
        }

这是我用于在画布上绘制多个位图以创建贴图的代码,但是我想从它们中创建一个大的位图来代替canvas.drawbitmap

2 个答案:

答案 0 :(得分:0)

使用由位图支持的Canvas。创建一个正确大小的新位图,然后调用新的Canvas(newBitmap)来创建一个绘制到该新Bitmap的Canvas。然后使用上面用该画布发布的代码。

答案 1 :(得分:0)

如果所有位图都完美地嵌入矩形区域,您可以在所需尺寸上创建一个适合每个较小位图的新位图,然后将每个较小位图中的像素复制到正确偏移的较大位图中。您可以使用位图上的getPixel和setPixel执行此操作。我不会介绍所有不同的优化策略,但这肯定是一个可行的解决方案,它完全绕过了对Canvas的需求。