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
}
相关推荐
alexhilton6 小时前
模块化Jetpack Compose架构
android·kotlin·android jetpack
厮年断弦8 小时前
AI 辅助开发实录:一周做完一个 Android 本地音乐播放器,这些坑替你踩了
android
hai_android8 小时前
InputStage 责任链核心执行流程
android·android studio·android jetpack
mmsx11 小时前
Android 测绘计算工程化:七四参数、高程拟合与单位系统
android·kotlin
我是场13 小时前
我的NPI项目之-Touch的EE特性
android·arm开发
天空之城--13 小时前
Android一周动态:AI编程、Compose与车载生态新信号
android·flutter
恋猫de小郭14 小时前
Dart 4.0 要彻底移除 dart:mirrors,Augmentations 应该要来了
android·前端·flutter
Carson带你学Android15 小时前
Gemini 4 Argon 发布:对 Android 开发者意味着什么?
android·ai编程
事圆则缓16 小时前
Kotlin Flow、StateFlow、SharedFlow 全解析:冷流、热流与 Android 状态管理
android·kotlin·php
应用市场16 小时前
把旧 Pixel 变成相册备份中转站(上):Mac 到安卓的照片传输工具设计——流式上传、sha256 校验、adb forward 与 Bonjour
android·macos·adb·kotlin·swift