📜  从 imageview 获取位图 (1)

📅  最后修改于: 2023-12-03 14:49:17.690000             🧑  作者: Mango

从 ImageView 获取位图

在 Android 应用开发过程中,经常需要从 ImageView 中获取位图,以便做一些后续处理,例如保存到本地或分享给其他应用。本文将介绍如何从 ImageView 中获取位图,其中包括两种常见方式:

方法一:使用 getDrawingCache 方法

ImageView 类提供了一个名为 getDrawingCache 的方法,该方法将会返回 ImageView 的位图缓存,我们可以利用该方法获取位图。下面是获取位图的代码示例:

// 获取 ImageView 的位图
imageView.setDrawingCacheEnabled(true);
imageView.buildDrawingCache();
Bitmap bitmap = imageView.getDrawingCache();

需要注意的是,为了能够从 ImageView 中获取位图,必须要先调用 setDrawingCacheEnabled(true)buildDrawingCache() 方法开启位图缓存。

方法二:使用 createBitmap 方法

除了利用 ImageView 类封装的 getDrawingCache 方法之外,我们还可以通过 Bitmap 类的 createBitmap 方法创建一张位图,从而获取 ImageView 的位图。下面是获取位图的代码示例:

// 获取 ImageView 的位图
int width = imageView.getWidth();
int height = imageView.getHeight();
Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
imageView.draw(canvas);

其中,createBitmap 方法三个参数分别为位图的宽度、高度和色彩配置。此外,我们还需要新建一个 Canvas 对象,利用 draw 方法将 ImageView 绘制到位图上。

总结

以上是从 ImageView 中获取位图的两种方式,我们可以根据实际需要选择其中一种方式。请注意,在应用过程中,如果希望释放 ImageView 的位图缓存,可以调用 destroyDrawingCache 方法。