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
}
相关推荐
chjif27 分钟前
Android 设备管控开发实战:无障碍如何准确识别当前前台 App?
android
chjif34 分钟前
Android 设备管控开发实战:企业受控终端的 DNS 域名策略实现
android·华为·harmonyos
c238562 小时前
MySQL 基础用法(下):查询进阶与核心特性
android·c语言·c++·mysql
math_hongfan3 小时前
鸿蒙Agent高级技能自定义开发:自定义意图服务/能力注册/Agent技能编排/服务插件开发实战
android·学习·华为·harmonyos·鸿蒙
2501_915106324 小时前
iOS 证书类型及作用说明 账号证书与签名配置的完整解读
android·ios·小程序·https·uni-app·iphone·webview
九皇叔叔4 小时前
RHEL9 安装 MySQL 8.4.11.LTS 版本
android·mysql·adb
海兰4 小时前
【数据库】tdsql(MySQL )的事务隔离级别
android·数据库·mysql
哆啦A梦z4 小时前
Android BLE 实战:从小米手环 7 踩坑到完整连接框架
android
IKUN家族5 小时前
KMP全栈开发:从Android到AI Agent的技术演进与实践
android·人工智能
笑一下蒜了.5 小时前
Linux 存储多路径访问手册|multipath.conf 各配置段详解
android·linux·运维