首页 > 解决方案 > 将图像从画廊滑到位图变量

问题描述

我有一个变量Bitmap image。我imageButton的片段中有。imageButton我可以用改变图像Glide.with().load().into()。但我不仅要更改图像,还要将其保存到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);

selectedImage方法在哪里Uri selectedImage = data.getData()onActivityResult但是由于位图的大小,它会一团糟,所以我们必须使用createScaledBitmap,我不喜欢它。由于某种原因Bitmap image = BitmapFactory.decodeFile(imagePath)不起作用,imageButton 只是变成了灰色的小方块,我没有找到解决方案。

标签: androidandroid-glide

解决方案


我不知道你是否应该考虑在一些严肃的项目中这样做,但现在它完成了我需要做的事情。早些时候我宣布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可以用于其他任务。我希望。测试它以更改另一个图像视图的图片,它有效,所以我会祈祷它会进一步工作。完整onActivityResult代码在这里。不想让问题变得太混乱


推荐阅读