Java 如何使用piccaso将下载的图像从一个活动传递到另一个活动
我在我的项目中使用cardlayout,并从Firebase检索所有数据。我用了三节课。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
在主活动中,我使用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;