0

这是我的活动。

private ImageLoader testing;
testing = new ImageLoader(this);
imageview = (ImageView)findViewById(R.id.image_alllatestnewstitle);
...
...
...

这是在列表视图中,因此它将显示多个图像。

private void filldata() {
    lv = (ListView) findViewById(android.R.id.list);

    String[] from = new String[] { "particularlatestnewstitle",
            "newscategorytitle", "newsdate" };
    int[] to = new int[] { R.id.text_particularlatestnewstitle,
            R.id.text_newscategorytitle, R.id.text_newsdate };

    fillMaps = new ArrayList<HashMap<String, String>>();
    for (int i = 0; i < webservice.news.size(); i++) {
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("particularlatestnewstitle", webservice.news.get(i)
                .getNtitle());
        map.put("newscategorytitle", webservice.news.get(i).getNewCatName());
        map.put("newsdate", webservice.news.get(i).getNArticalD());

        fillMaps.add(map);
        imageview = (ImageView)findViewById(R.id.image_alllatestnewstitle);
        imageview.setTag(imagepath[i]);
        testing.DisplayImage(imagepath[i], imageview);
    }
    SimpleAdapter adapter = new SimpleAdapter(this, fillMaps,
            R.layout.main_alllatestnewslist, from, to);
    lv.setAdapter(adapter);

这是我的 ImageLoader 类

public void DisplayImage(String url, ImageView imageView)
{
    imageViews.put(imageView, url);
    Bitmap bitmap=memoryCache.get(url);
    if(bitmap!=null){
        System.out.println(url.toString());
        System.out.println(bitmap.toString());
        imageView.setImageBitmap(bitmap);
    }else
    {
        queuePhoto(url, imageView);
    }
}

这是xml布局

<ImageView
    android:id="@+id/image_alllatestnewstitle"
    android:layout_width="134px"
    android:layout_height="80px"
    android:layout_marginBottom="5px"
    android:layout_marginLeft="10px"
    android:layout_marginRight="10px"
    android:layout_marginTop="5px"
    android:scaleType="centerCrop" />

我正在打印结果

url and bitmap

两者都不为空并显示正确的 url 链接。

但是当setimagebitmap时,它没有错误,但imageview也没有显示图像。

问题是什么?

p/s:如果需要,请索取更多代码。

4

2 回答 2

0

我确定您使用的是 Fedor 的延迟加载逻辑。

现在,根据您提供的代码,我可以说一件事,即您在调用 DisplayImage() 方法之前忘记将 TAG 设置为 ImageView。

testing.setTag(imagepath[i]);
于 2012-05-07T11:11:14.033 回答
0

尝试此代码donwload image并在imageview.

       try {
            URL url = new URL(urlStr);
            URLConnection ucon = url.openConnection();

            InputStream is = ucon.getInputStream();
            Bitmap bitmap = BitmapFactory.decodeStream(is);
            if(bitmap!=null){
                System.out.println(url.toString());
                System.out.println(bitmap.toString());
                imageView.setImageBitmap(bitmap);
            }
        } catch (MalformedURLException e1) {
            e1.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
于 2012-05-07T11:17:53.310 回答