Android ImageView 生成 Bitmap

在 Android 开发中,ImageView 是常用的用于显示图片的控件。有时候,我们需要将 ImageView 中的图片转换为 Bitmap,以便进行一些处理或保存到本地。本文将介绍如何在 Android 中将 ImageView 中显示的图片转换为 Bitmap

获取 ImageView 中的图片

要获取 ImageView 中显示的图片,我们可以通过 getDrawable() 方法来获取 ImageView 的图片资源。然后,我们可以将其转换为 Bitmap

下面是一个示例代码,展示了如何获取 ImageView 中显示的图片并转换为 Bitmap

ImageView imageView = findViewById(R.id.imageView);
Drawable drawable = imageView.getDrawable();
Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);

在上面的代码中,我们首先通过 getDrawable() 方法获取 ImageView 的图片资源,并创建一个相同大小的空白 Bitmap。然后,我们使用 Canvas 将图片绘制到 Bitmap 上。

示例应用

为了更好地理解上述概念,我们来创建一个简单的示例应用。该应用中包含一个 ImageView 和一个按钮。当按钮被点击时,将 ImageView 中显示的图片转换为 Bitmap 并显示在一个新的 ImageView 中。

首先,在布局文件中添加一个 ImageView 和一个按钮:

<ImageView
    android:id="@+id/originalImageView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:src="@drawable/image" />

<Button
    android:id="@+id/convertButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Convert" />

<ImageView
    android:id="@+id/convertedImageView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

然后,在活动中获取 ImageView 中显示的图片并转换为 Bitmap,然后将其显示在新的 ImageView 中:

ImageView originalImageView = findViewById(R.id.originalImageView);
ImageView convertedImageView = findViewById(R.id.convertedImageView);
Button convertButton = findViewById(R.id.convertButton);

convertButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Drawable drawable = originalImageView.getDrawable();
        Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bitmap);
        drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
        drawable.draw(canvas);

        convertedImageView.setImageBitmap(bitmap);
    }
});

在上面的代码中,我们首先通过 findViewById() 方法获取 ImageView 和按钮的实例。然后,我们为按钮设置一个点击事件监听器。在监听器中,我们获取 originalImageView 中显示的图片,并将其转换为 Bitmap。最后,我们使用 setImageBitmap() 方法将转换后的 Bitmap 显示在 convertedImageView 中。

总结

在 Android 中,我们可以通过获取 ImageView 的图片资源,并将其转换为 Bitmap 来实现将 ImageView 中显示的图片转换为 Bitmap 的功能。本文介绍了如何获取 ImageView 中的图片,并提供了一个示例应用,演示了如何将 ImageView 中的图片转换为 Bitmap

通过本文的学习,你应该已经了解了在 Android 中如何生成 Bitmap,以及如何将 ImageView 中的图片转换为 Bitmap。希望本文对你的 Android 开发学习有所帮助!


附录:饼状图

下面是一个使用 mermaid 语法表示的饼状图示例:

pie
    title Fruit Distribution
    "Apple" : 45.0
    "Banana" : 30.0
    "Orange" : 15.0
    "Mango" : 10.0

以上代码将生成一个标题为 "Fruit Distribution" 的饼状图,显示了苹果、香蕉、橙子和芒果的分布情况。

引用

  • [Android Developers: ImageView](
  • [Android Developers: Drawable](
  • [Android Developers: Bitmap](https