我正在 Kotlin 中构建一个 Android 应用程序,并且我想将特定视图(如 TextView 或 ImageView)捕获为位图。我读到过 DrawingCache 可以帮助解决这个问题,但我不确定这是否是最好的方法。我需要位图稍后保存或作为图像共享。
这是我迄今为止尝试过的:
我想将视图捕获为位图,以便稍后将其保存为图像或共享。
DrawingCache
是一个选项,它已经过时了,现在首选的方法是使用 Bitmap
和 Canvas
来捕获视图的内容。
Kotlin 代码
fun captureViewAsBitmap(view: View): Bitmap {
// Create a bitmap with the same width and height as the view
val bitmap = Bitmap.createBitmap(view.width, view.height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
// Draw the view onto the canvas, which will render it to the bitmap
view.draw(canvas)
return bitmap
}
Java代码
public Bitmap captureViewAsBitmap(View view) {
// Create a bitmap with the same width and height as the view
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
// Draw the view onto the canvas, which will render it to the bitmap
view.draw(canvas);
return bitmap;
}