如何将下载的图像从一个活动传递到下一个活动?

时间:2016-02-28 01:58:00

标签: java android android-activity

我想将用户点击的下载图像从活动中提取到下一个。我相信这应该在我的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;
    }

这是我的Object构造函数类

中的代码
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;
}

我已将所有字符串数据捆绑到一个额外的内容并通过intent传递它,我想在这个上下文中做同样的事情,将图像转换为额外的并将其传递给intent,但我目前正在做不知道如何实现。

任何人都可以帮我解决这个问题吗?我目前正在做Udacity Android Programmer最终项目,所以我对android编程还是一个新手。

1 个答案:

答案 0 :(得分:1)

将Url作为字符串额外传递给第二个活动。

在第一个活动/自定义适配器中:

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);
    }
}