Utils系列 - ViewUtils

118 阅读1分钟

避免过多废话

package com.example

import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Picture
import android.view.View

/**
 * 将View的图像绘制到特定Canvas上
 */
fun drawView(view: View, destCanvas: Canvas) {
    val saveCount = destCanvas.save()
    destCanvas.scale(1.0f, 1.0f)
    view.draw(destCanvas)
    destCanvas.restoreToCount(saveCount)
}

/**
 * 获取特定View的图像对应的Bitmap
 */
fun getViewImage(view: View): Bitmap? {
    val picture = Picture()
    val destCanvas: Canvas = picture.beginRecording(view.width, view.height)
    drawView(view, destCanvas)
    picture.endRecording()
    return Bitmap.createBitmap(picture)
}