Android将ImageView显示的图原样取出转换为Bitmap,Kotlin

Android将ImageView显示的图原样取出转换为Bitmap,Kotlin

Kotlin 复制代码
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.Rect
import android.graphics.drawable.Drawable

fun drawableToIntrinsicBitmap(imageView:ImageView): Bitmap? {
    val drawable = imageView.drawable ?: return null

    val intrinsicWidth = drawable.intrinsicWidth
    val intrinsicHeight = drawable.intrinsicHeight

    if (intrinsicWidth <= 0 || intrinsicHeight <= 0) {
        return null
    }

    val bitmap = Bitmap.createBitmap(
        intrinsicWidth,
        intrinsicHeight,
        Bitmap.Config.ARGB_8888
    )

    val canvas = Canvas(bitmap)

    val oldBounds = Rect(drawable.bounds)

    drawable.setBounds(
        0,
        0,
        intrinsicWidth,
        intrinsicHeight
    )

    drawable.draw(canvas)

    drawable.bounds = oldBounds

    return bitmap
}
相关推荐
执明wa30 分钟前
Android RecyclerView 多类型, 多种 Item
android·xml·开发语言·设计模式·android studio
silianpan1 小时前
CAD 文档预览 UTS 插件
android·ios·harmonyos
小麦在野1 小时前
独立 App 开发系列:用 GitHub Pages 托管隐私政策和用户协议
android·github
JMchen1 小时前
Android自定义View三大核心流程:measure、layout、draw完全解密
android·android studio
silianpan1 小时前
Office 文档预览 UTS 插件
android·微信小程序·harmonyos
明君6892 小时前
一套专注 Android 逆向分析的 Skills
android·android逆向·agents·skills
stone20352 小时前
造一个"录制回放 + LLM 自主操作手机"的 Android 自动化测试平台(一)整体架构与录制引擎
android
事圆则缓2 小时前
Android 声明式 API 的翻译过程
android
mmsx2 小时前
MapLibre 实战 13|让比例尺显示 100m 而不是 347.2m:屏幕距离换算与两个易错点
android·前端·app