如何将下载的图像从一项活动传递给下一项?
我想将用户从活动中点击的下载图像下载到下一个。我相信这应该在我的lambda onItemClickListenerClass中完成。如何将下载的图像从一项活动传递给下一项?
我为我的自定义适配器类代码是在这里:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Movie movie = getItem(position);
if (movie == null) return null;
ImageView imageView;
/**
* if convertView is empty, set it equal to ImageView
*/
if (convertView == null) {
imageView = new ImageView(context);
imageView.setLayoutParams(new GridView.LayoutParams(width, height));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
} else {
imageView = (ImageView) convertView;
}
Uri coverUrl = movie.getMovieCover();
Picasso.with(context)
.load(coverUrl)
.into(imageView);
// Log.e(LOG_TAG, "URL " + url);
return imageView;
}
,这是代码从我的对象构造函数类
public Uri getMovieCover(){
final String BASE = "http://image.tmdb.org/t/p/w185";
Uri builtUri = Uri.parse(BASE).buildUpon()
.appendEncodedPath(poster_path)
.build();
return builtUri;
}
我有我的所有字符串数据捆绑成一个额外的,并通过它通过一个意图,我想在这种情况下做同样的事情,通过将图像转换为额外的,并通过意图传递它,但我目前不知道如何实现。
任何人都可以帮我解决这个问题吗?我目前正在做Udacity Android Programmer最终项目,所以对于android编程我还是比较新的。
将URL作为字符串传递给第2个活动。
在1日活动/自定义适配器:
String url = "http://image-url";
Intent intent = new Intent (getActivity().this, 2ndActivity.class);
intent.putExtra("image-url", url);
getActivity().startIntent(intent);
在第二个活动:
String url;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent i = getIntents();
url = i.getExtra("image-url");
Uri coverUrl = new Uri(url);
if (url.Length() > 0) {
imageView = new ImageView(context);
imageView.setLayoutParams(new GridView.LayoutParams(width, height));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
Picasso.with(context)
.load(coverUrl)
.into(imageView);
}
}
这会在每次活动开始时重新下载图像 – user1282637
这就是缺点。你最好的选择是将图像下载到你的SD卡上,而不是从文件路径创建一个可绘制的位图/位图。 –
你的代码,建议你从图片网址填充ImageView的,而不是明确地下载图像到你的SD卡。你可以为第二项活动做同样的事情。将Image Url作为字符串传递并再次从Url填充ImageView。 –
对不起,我没有像以前那么具体,但应用程序应该编程的方式是通过使用我不知道的任何附件,我只需要帮助实现该功能。否则,我会用序列化并完成它。 – electronicwall
你没有明白我的观点。 你有图像的URL作为字符串? –