2016-02-28 53 views
0

我想将用户从活动中点击的下载图像下载到下一个。我相信这应该在我的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编程我还是比较新的。

+0

你的代码,建议你从图片网址填充ImageView的,而不是明确地下载图像到你的SD卡。你可以为第二项活动做同样的事情。将Image Url作为字符串传递并再次从Url填充ImageView。 –

+0

对不起,我没有像以前那么具体,但应用程序应该编程的方式是通过使用我不知道的任何附件,我只需要帮助实现该功能。否则,我会用序列化并完成它。 – electronicwall

+0

你没有明白我的观点。 你有图像的URL作为字符串? –

回答

1

将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); 
    } 
} 
+0

这会在每次活动开始时重新下载图像 – user1282637

+0

这就是缺点。你最好的选择是将图像下载到你的SD卡上,而不是从文件路径创建一个可绘制的位图/位图。 –

相关问题