Android 获取指定显示区域的图像(Bitmap)并进行缩放

1、直接获取ImageView 上的图像Bitmap 图形数据
val drawable = binding.imageView.drawable
val bitmapDrawable = drawable as BitmapDrawable // java : BitmapDrawable bitmapDrawable = (BitmapDrawable )drawable
val bitmap = bitmapDrawable .bitmap
// 这里就已经有了bitmap 图形数据bitmap了

2、下面在对上面获取的Bitmap 进行缩放
说明:Bitmap 有好多个Bitmap.createBitmap ,如果直接给想要的宽高和bitmap 图形,可能获取的结果只是上面bitmap 的一部分
这里它也提供了直接缩放的方法如下:
val width = xxx // 期望的宽度
val height = xxx // 期望的高度
// 传输源Bitmap 想要的尺寸的宽高,然后最后一个参数是源码翻译大概意思是:在缩放位图时是否应该使用双线性滤波,为true 图形质量好一些,false 时,质量会差一些。
val newScaleBitmap = Bitmap.createBitmap(bitmap,width,height,false)

好了,上面就是对指定View 上的图像进行获取并进行缩放处理的结果

如果我想获取几个View 叠加在一起的合并图形数据,比如一个区域内有好几层ImageView 有不同的图像,我想要最终显示出来的视觉合并效果,其实最好的办法是直接用ViewGroup 给他们包起来,然后获取这个ViewGroup 的图像数据就可以了,办法跟上面一样了

你可能感兴趣的:(Android 获取指定显示区域的图像(Bitmap)并进行缩放)