将图像从画廊滑到位图变量

Glide image from gallery to bitmap variable

我有一个变量Bitmap image。我的片段中有 imageButton。我可以用 Glide.with().load().into() 更改 imageButton 的图像。但我不想只更改图像,而是将其保存到 Bitmap 变量中,这样我就可以将它用于其他任务。我试过这个

Bitmap image = Glide.with(getContext()).asBitmap().load(imagePath).submit().get();
imageButton.setImageBitmap(image);

但是imageButton 的图像没有改变。那第一行有什么问题呢?因为我很确定问题在那里,但还不明白到底出了什么问题。


一个解决方案是

Bitmap image = BitmapFactory.
        decodeStream(getContext().
        getContentResolver().
        openInputStream(selectedImage));
imageButton.setImageBitmap(image);

其中selectedImageonActivityResult方法的Uri selectedImage = data.getData(),但是由于位图的大小会很乱,所以我们必须使用createScaledBitmap,我不喜欢它。由于某些原因 Bitmap image = BitmapFactory.decodeFile(imagePath) 不起作用,imageButton 变成了灰色的小方块,我没有找到解决方案。

首先为什么要使用 imageButton..使用 imageView 它会比 imagebutton,它将起作用

我不知道你是否应该考虑在一些严肃的项目中这样做,但现在它做了我需要做的事情。早些时候我宣布 private Bitmap jopa.

Glide.with(getContext()).asBitmap().
        load(selectedImage).override(500,500).
        into(new CustomTarget<Bitmap>() 
        {
         @Override
         public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
             imgShare.setImageBitmap(resource);
             jopa = ((BitmapDrawable)imgShare.getDrawable()).getBitmap();
         }

         @Override
         public void onLoadCleared(@Nullable Drawable placeholder) {

         }
     });

现在Bitmap jopa可以用于其他任务。我希望。测试它以更改另一个 imageview 的图片,它有效,所以我祈祷它能进一步工作。完整 onActivityResult 代码 here。不想问题太乱