当前位置: 首页 > 知识库问答 >
问题:

将缓存映像从一个活动传递到另一个活动

鲁博瀚
2023-03-14

在活动1中,我将一张图片从url加载到imageview中(使用glide)。当我切换到活动2时,我断开了网络连接,我需要在另一个imageview中加载相同的图像。我该如何实现这一点?使用glide缓存在某处的图像可以做到这一点吗?

共有3个答案

司徒耀
2023-03-14

我使用这个,这对我有用:

添加一个OnClickListener,如下所示:

    Glide.with(this)
         .load("URL HERE")
         .diskCacheStrategy(DiskCacheStrategy.ALL)
         .into(Image);

    Image.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Intent intent= new Intent(context,FullScreenImage.class);
                        intent.putExtra("image_url", "URL HERE" );
                        startActivity(intent);
                    }
                });

然后在新的活动中:

    public class FullScreenImage extends AppCompatActivity {


    ImageView myImage;
    String url = "";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_full_screen_image);

        url = getIntent().getStringExtra("image_url");

        myImage = findViewById(R.id.myImage);
        Glide.with(this).load(url)
                .placeholder(R.drawable.ic_image_send_24dp)
                .error(R.drawable.ic_image_send_24dp)
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .into(myImage);
    }
}

PS:不要忘记使用< code >。diskCacheStrategy(diskCacheStrategy。ALL)在两项活动中使用glide。

西门嘉石
2023-03-14

不要使用glide缓存图像,而是创建你自己的缓存文件夹并将图像缓存到其中。在整个应用程序中可以很容易地访问它

  Glide.with(yourImageView.getContext())
                .load("your url")
                .asBitmap()
                .placeholder(R.drawable.place_holder)
                .error(R.drawable.place_holder)
                .into(new SimpleTarget<Bitmap>() {
                    @Override
                    public void onResourceReady(Bitmap resource, Transition<? super Bitmap> transition) {

                 //Create a folder for caching and add images from here

                    }
                });
慎弘化
2023-03-14

在你的活动中

将ImageView转换为位图

imageView.buildDrawingCache();
Bitmap bmp = imageView.getDrawingCache();

Intent intent = new Intent(this, Activity2.class);
intent.putExtra("img", bmp);

在活动2中

  Bitmap bitmap = (Bitmap) intent.getParcelableExtra("img");
  imageView.setImageBitmap(bitmap);
 类似资料: