主位图大小大于自定义视图的绘图区域。目前,我的代码是这样的。虽然有效,但我觉得应该有办法进一步优化。
// Code in a custom View
private fun getBitmap(): Bitmap {
val resources = context.resources
// Creating a larger master bitmap.
val screenWidth = resources.getDisplayMetrics().widthPixels;
val screenHeight = resources.getDisplayMetrics().heightPixels;
val masterBitmap = Bitmap.createBitmap(screenWidth, screenHeight, Bitmap.Config.ARGB_8888)
val masterCanvas = Canvas(masterBitmap)
masterCanvas.drawColor(Color.WHITE)
// Creating a smaller child bitmap.
val childBitmap = Bitmap.createBitmap(
masterBitmap,
(screenWidth-width) shr 1,
(screenHeight-height) shr 1,
width,
height
)
// Perform drawing on smaller child bitmap.
val childCanvas = Canvas(childBitmap)
draw(childCanvas)
// Copy the smaller child bitmap back to larger master bitmap.
masterCanvas.drawBitmap(
childBitmap,
((screenWidth-width) shr 1).toFloat(),
((screenHeight-height) shr 1).toFloat(),
Paint()
)
}
因此,该步骤可概括如下
-
创建较大的主位图。
-
-
在较小的子位图上执行绘制。
-
我在想,有没有办法消除
?
Bitmap.createBitmap
将使用新分配的内存创建位图的新实例。
我想要的步骤是
-
-
-
我在想,有什么API可以让我