如何在 Android 中将特定视图捕获为位图?

问题描述 投票:0回答:1

我正在 Kotlin 中构建一个 Android 应用程序,并且我想将特定视图(如 TextView 或 ImageView)捕获为位图。我读到过 DrawingCache 可以帮助解决这个问题,但我不确定这是否是最好的方法。我需要位图稍后保存或作为图像共享。

这是我迄今为止尝试过的:

  1. 为视图启用绘图缓存。
  2. 使用Canvas将视图绘制成Bitmap。

我想将视图捕获为位图,以便稍后将其保存为图像或共享。

android bitmap android-view android-canvas
1个回答
0
投票

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.