从ImageView而不是Drawable获取图像

时间:2019-04-12 03:51:10

标签: java android android-imageview

请注意,我是NEWBIE。在学习过程中

现在这段代码在做什么?它正在从可绘制图像中读取图像,然后使用Google视觉从图像中获取文本。

a[-1]

注意: R.drawable.changing是“更改”是我的图像名称。 现在,我想用我在ImageView上载的图像替换图像。

任何帮助都会起作用。

3 个答案:

答案 0 :(得分:0)

您可以简单地使用ImageView.getDrawable()从ImageView中获取图像。但是,drawable不一定是BitmapDrawable(我认为您的changing drawable是)。

要获取ImageView的可绘制对象的实际位图,您可能需要进一步了解如何从Android可绘制对象创建位图。在StackOverflow中有很多答案,因此在此不再赘述。

基本上,它将创建一个位图和一个画布,然后使Drawable通过画布将其自身绘制到位图中。

答案 1 :(得分:0)

您可以像这样从imageview获取Bitmap

Drawable dr = ((ImageView) imView).getDrawable();
Bitmap bmp =  ((GlideBitmapDrawable)dr.getCurrent()).getBitmap();

答案 2 :(得分:0)

如果要从可绘制图像中获取图像,可以尝试以下方法:

imageView.invalidate();
BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
Bitmap bitmap = drawable.getBitmap();

如果您从图库之类的资源中获取图片:

if (requestCode == SELECT_FILE)
    {
        Uri selectedImageUri = data.getData();
            Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImageUri);
            imageview.setImageBitmap(bitmap);
    }

从相机获取图像的另一种选择:

if(requestCode == REQUEST_CAMERA)
        {
            Bundle bundle = data.getExtras();
            final Bitmap bmp = (Bitmap) bundle.get("data");
            imageview.setImageBitmap(bmp);
        }

其中SELECT_FILE和REQUEST_CAMERA只是一个整数:

int SELECT_FILE = 0;
int REQUEST_CAMERA = 1;