【问题标题】:Android Gallery async image loadAndroid Gallery 异步图片加载
【发布时间】:2011-02-28 20:24:27
【问题描述】:

是否可以将此项目http://open-pim.com/tmp/LazyList.zip 中的异步图像加载器与图库小部件一起使用? 我试过了:

     public View getView(int position, View convertView, ViewGroup parent) {
    ImageView imageView=new ImageView(activity.getBaseContext());

    imageLoader.DisplayImage(urlList.get(position), activity, imageView);

    imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
    imageView.setLayoutParams(new Gallery.LayoutParams(150, 150));

    return imageView;
}

但它没有效果。

【问题讨论】:

    标签: android image asynchronous download gallery


    【解决方案1】:

    您必须适当地标记您的图像视图,以便在从缓存或网络检索图像后异步任务可以更新它们:

    imageLoader.DisplayImage(urlList.get(position), activity, imageView);
    imageView.setTag(urlList.get(position));
    

    【讨论】:

    • 我已经添加了它,现在我在 ImageLoader 类中收到运行时异常:Activity a=(Activity)photoToLoad.imageView.getContext();那是类转换异常
    • 在创建 ImageView 时尝试将活动对象作为上下文传递。
    【解决方案2】:

    下面的代码适用于我的项目。

    每次都使用 ViewHolder 而不是 new ImageView(Context c),如果您在 viewholder 中有 2 个或更多视图,只需如下代码(使用 findViewById()):

    holder.iv = (ImageView) convertView.findViewById(R.id.iv);

    holder.tv = (TextView) convertView.findViewById(R.id.tv);

    你最好在 xml 中扩展一个布局,并对视图的样式进行编码。不要在 getView() 中编码,因为它对时间很敏感。

    从 LazyList 演示修改的代码,我希望这对你有用。祝你好运!

    static class ViewHolder{
        ImageView iv;
    }
    
    public View getView(int position, View convertView, ViewGroup parent) {
        View holder = null;
        if(convertView==null){
            convertView = inflater.inflate(R.layout.item, null);
            holder = new ViewHolder();
            holder.iv = (ImageView) convertView;
            convertView.setTag(holder);
        }else{
            holder = (ViewHolder) convertView.getTag();
        }
    
        imageLoader.DisplayImage(data[position], activity, holder.iv);
        return convertView;
    }
    

    【讨论】:

      【解决方案3】:

      imageLoader.DisplayImage(urlList.get(position), activity, imageView); imageView.setTag(urlList.get(position));

      此代码运行良好。我们可以将它用于 RemoteViews 中的图像视图吗?

      【讨论】:

        猜你喜欢
        • 2012-04-07
        • 1970-01-01
        • 2013-04-06
        • 2012-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多