在listview中显示外部链接的图像

时间:2012-12-13 22:15:39

标签: android listview imageview

我见过一个关于如何在listview中显示textview和imageview的示例。这些图像文件位于可绘制文件中。

public View getView(int position, View convertView, ViewGroup parent) {   

                if(convertView==null){   
                    convertView=LayoutInflater.from(mContext).inflate(R.layout.item, null);   
                    ItemViewCache viewCache=new ItemViewCache();   
                    viewCache.mTextView=(TextView)convertView.findViewById(R.id.text); 
                    viewCache.mTextView1=(TextView)convertView.findViewById(R.id.text1);
                    viewCache.mImageView=(ImageView)convertView.findViewById(R.id.image);   
                    convertView.setTag(viewCache);   
                }   
                ItemViewCache cache=(ItemViewCache)convertView.getTag();   

                cache.mTextView.setText(texts[position]);  
                cache.mTextView1.setText(texts1[position]);
                cache.mImageView.setImageResource(images[position]);
                return convertView;   
            }   
        }   
                    private static class ItemViewCache{   
            public TextView mTextView;  
            public TextView mTextView1;
            public ImageView mImageView;   
        }   

        private  String[] texts=new String[]{"one","two","three"}; 
        private  String[] texts1=new String[]{"wether","tuan","background"};
        private int[] images=new int[]{R.drawable.img1,R.drawable.img2,R.drawable.img3};

但我所拥有的是这些图片的外部网址链接:

private String[] images=new String[]{"http://ia.media-imdb.com/images/M/MV5BMjMyOTM4MDMxNV5BMl5BanBnXkFtZTcwNjIyNzExOA@@._V1._SX54_CR0,0,54,74_.jpg",
                "http://i.media-imdb.com/images/SF1f0a42ee1aa08d477a576fbbf7562eed/realm/feature.gif",
                "http://ia.media-imdb.com/images/M/MV5BMzk3MTE5MDU5NV5BMl5BanBnXkFtZTYwMjY3NTY3._V1._SX54_CR0,0,54,74_.jpg"};

我应该使用什么方法来显示这些图像?

2 个答案:

答案 0 :(得分:1)

您可以使用来自How to load an ImageView by URL in Android?

的史蒂夫代码加载图片

现在您有两个选择:

1)使用自定义列表视图(您在其中创建一个xml文件,显示图像视图,textview以及列表中每行所需的其他项目)

2)使用标准列表视图,其中只包含一个TextView(它有一个CompoundDrawable,可以让你将图像定位在文本的左/右/上/下)

1)自定义列表视图

为您的行布局创建一个xml资源,其中包含textview和imageview(可能还有其他项),然后在列表视图中显示它,在ImageView上调用setImageBitmap。有关创建自定义列表视图的详细信息,请参阅http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/

中的教程

2)标准列表视图

在默认文本视图上调用setCompoundDrawableWithIntrinsicBounds,为图像设置适当的Drawable。要将位图转换为drawable,请参阅How to convert a Bitmap to Drawable in android?

答案 1 :(得分:0)

谷歌有一个很好的例子(包括代码)如何从网络上显示图像:

http://developer.android.com/training/displaying-bitmaps/index.html