将 ImageView 转换为具有本机分辨率的位图
Posted
技术标签:
【中文标题】将 ImageView 转换为具有本机分辨率的位图【英文标题】:Convert ImageView to Bitmap with native resolution 【发布时间】:2019-08-03 11:34:52 【问题描述】:我有以下问题:我的imageView
被转换为bitmap
,当将位图保存到我的画廊时,我可以清楚地看到位图的分辨率/格式与 imageView 相同。但我想获得未裁剪的分辨率。
是否可以将 imageView 转换为具有原生分辨率的 Bitmap?
我想将 imageView 转换为位图,而不是通过图像源 (URL) 创建新的位图,因为我需要实现新的异步...
当前转换代码:
BitmapDrawable bitmapDrawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = bitmapDrawable.getBitmap();
清除:
网站上的图片分辨率为800*800px
,而我的imageView 的分辨率为300*300dp
(更小),我想要源的分辨率。这可能吗?
【问题讨论】:
“原生解决方案”是什么意思? 本机分辨率:例如,网站上的图像分辨率为 500*800 像素,而我的 imageView 的分辨率为 300*300dp(小得多),我想要源的分辨率.. 使用 glide 库获取图片为位图 【参考方案1】:只需使用 Glide 加载带有自定义 Target 的图像。
Glide.with(context) //or view
.asBitmap()
.load(imagePath)
.into(object : CustomTarget<Bitmap>()
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?)
// do whatever you want with the 'resource' Bitmap
override fun onLoadCleared(placeholder: Drawable?)
// this is called when imageView is cleared on lifecycle so you can recycle your bitmap
)
【讨论】:
以上是关于将 ImageView 转换为具有本机分辨率的位图的主要内容,如果未能解决你的问题,请参考以下文章
Android - 将 ImageView 保存到具有全分辨率图像的文件