Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用piccaso将下载的图像从一个活动传递到另一个活动_Java_Android - Fatal编程技术网

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

Java 如何使用piccaso将下载的图像从一个活动传递到另一个活动,java,android,Java,Android,我在我的项目中使用cardlayout,并从Firebase检索所有数据。我用了三节课。 在主活动中,我使用piccaso获取图像。 MainActivity.java Picasso.with(MainActivity.this).load(uri).fit().centerCrop().into(img); ContactInfo obj=new ContactInfo(); obj.image=img; ContactInfo.java Picasso.with(MainActivity

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

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

Picasso.with(MainActivity.this).load(uri).fit().centerCrop().into(img);
ContactInfo obj=new ContactInfo();
obj.image=img;
public ImageView image;
ContactInfo object=new ContactInfo();
Cardlayout.img=object.image.
CardLayout.java

Picasso.with(MainActivity.this).load(uri).fit().centerCrop().into(img);
ContactInfo obj=new ContactInfo();
obj.image=img;
public ImageView image;
ContactInfo object=new ContactInfo();
Cardlayout.img=object.image.
我的问题是我想将图像从MainActivity传递到CardLayout。这样做会使我的应用程序崩溃。

有人能帮我吗。

我想你可以在一个活动中加载一个图像,然后将URL传递给第二个活动。由于毕加索缓存了所有图像,因此使用相同URL的第二次调用将导致从缓存中获取相同的图像:

Picasso.with(MainActivity.this).load(uri).fit().centerCrop().into(img);
ContactInfo obj=new ContactInfo();
obj.image=img;
Picasso.with(context).load(url).into(imageView)
要检查映像是否从缓存加载,只需启用指示器:

Picasso.with(MainActivity.this).load(uri).fit().centerCrop().into(img);
ContactInfo obj=new ContactInfo();
obj.image=img;
Picasso.with(getContext()).setIndicatorsEnabled(true).
红色-它是从网络中获取的 蓝色-来自磁盘缓存 绿色-来自内存缓存

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

Picasso.with(MainActivity.this).load(uri).fit().centerCrop().into(img);
ContactInfo obj=new ContactInfo();
obj.image=img;
如果您有一个单独的类调用Picasso.with(MainActivity.this),只需执行以下操作:

Picasso.with(MainActivity.this).load(uri).fit().centerCrop().into(img);
ContactInfo obj=new ContactInfo();
obj.image=img;
public class Util {
   private Context context;

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

   public void callPicasso() {
       Picasso.with(context)......
   }
}
在主要活动中: public void onCreate(){

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

或者直接在MainActivity中使用你的毕加索调用看看答案。你也可以这样做。logcat中会出现什么?你得到TransactionTooLongException吗?在下面的操作之后,我得到了一个类似java.lang.IllegalArgumentException的日志:上下文不能为null。是的,你是对的,我像毕加索一样完成了。使用(这个)。加载(ci.uri_feed).fit().centerCrop().into(contactViewHolder.feedimg);但我在说java.lang.IllegalArgumentException:Context不能为null时出错。您在哪个类中调用此部分:Picasso.with(MainActivity.this)?如果该类与MainActivity不同,则应将上下文传递给该类,并使用该类而不是MainActivity。this@koldan如果你不是我的,请告诉我如何传递上下文。
Picasso.with(MainActivity.this).load(uri).fit().centerCrop().into(img);
ContactInfo obj=new ContactInfo();
obj.image=img;