下载ImageView for API android

时间:2012-08-21 07:47:48

标签: android api imageview

我正在为其他开发人员使用API​​类。 在我的函数中有一个我下载的ImageView数组,并将其分配给静态ArrayList,供开发人员使用。

为了从互联网上获取ImageViews,我使用的是一个以异步方式下载它们的类。 我的问题是,如果我没有使用资源中的ID初始化ImageView,我只是初始化它 ImageView imgView = new ImageView(activity); //活动由调用类传递 我无法在调用此功能的活动中使用/显示图像。

我的一些代码:

这是我的api课程中的功能(不是活动)

JSONArray banners = new JSONArray(result);

if(banners != null)
{
    for(int i = 0; i <    banners.length(); i++)
{
//ImageView imgView =(ImageView)activity.findViewById(R.id.imageView3); 
ImageView imgView = new ImageView(activity);

JSONObject jsonObjRecv = banners.getJSONObject(i);

String ImageUrl = jsonObjRecv.getString("image"); 

ImageLoad downloader = new ImageLoad(imgView);                                  
downloader.execute(ImageUrl);

imageViewsArray.add(imgView);

MainAcitiy:

ImageView imView = (ImageView)findViewById(R.id.imageView3);
imView = AlbosBanners.imageViewsArray.get(0);

当处理程序发送下载完成的消息时,我执行的这部分代码,但活动中的图像视图不显示任何内容,而不是下载的imageview。 imageView3是MainActivity content xml

的imageview的id

注意: 如果我在我的函数中使用这一行:

ImageView imgView =(ImageView)activity.findViewById(R.id.imageView3); 

它正在运作。

为了弄清楚 - 在api中我不会知道将要使用的应用程序的活动和xml。 我希望我能清楚地解释清楚。 我做错了什么?

1 个答案:

答案 0 :(得分:0)

不,您不会知道这些活动,但您可以让用户将activity个实例和id的{​​{1}}传递给您的方法。

在这种情况下,下载图片的方法应该接受2个参数,ImageViewActivity - 代表int资源ID。

示例:

ImageView
然后开发人员会像这样调用你的方法:

public void downloadImage(Activity context, int resId){
   // ..........
   ImageView imgView =(ImageView)context.findViewById(resId); 
}