如何使用piccaso将下载的图像从一个活动传递到另一个活动

时间:2017-09-18 07:14:09

标签: java android

我在我的项目中使用cardlayout,我正在从Firebase检索所有数据。我用了三节课 在MainActivity中,我使用piccaso获取图像 MainActivity.java

Picasso.with(MainActivity.this).load(uri).fit().centerCrop().into(img);
ContactInfo obj=new ContactInfo();
obj.image=img;

ContactInfo.java

public ImageView image;

CardLayout.java

ContactInfo object=new ContactInfo();
Cardlayout.img=object.image.

我的问题是我想将图像从MainActivity传递给CardLayout。通过这样做我的应用程序崩溃。
任何人都可以帮助我。

1 个答案:

答案 0 :(得分:1)

我认为您可以在一个活动中加载图像,然后将URL传递给第二个活动。由于Picasso使用相同的URL缓存所有图像第二次调用,因此将从缓存中获取相同的图像:

Picasso.with(context).load(url).into(imageView)

要检查图像是否已从缓存加载,只需启用指标:

Picasso.with(getContext()).setIndicatorsEnabled(true).

红色 - 它是从网络中获取的 蓝色 - 来自磁盘缓存 绿色 - 来自内存缓存

UPD:

如果你有一个单独的类调用Picasso.with(MainActivity.this),只需执行以下操作:

public class Util {
   private Context context;

   public Util(Context context) {
       this.context = context;
   }

   public void callPicasso() {
       Picasso.with(context)......
   }
}

在MainActivity中:     public void onCreate(){

    Util u = new Util(this.getApplicationContext());
    u.callPicasso()

或者直接在MainActivity中使用picasso调用