0

我看过一个关于如何在列表视图中显示 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};

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

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"};

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

4

2 回答 2

1

您可以使用来自How to load an ImageView by URL in Android? 的steve 代码加载图像?

现在你有两个选择:

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

2) 使用仅包含一个 TextView 的标准列表视图(它有一个 CompoundDrawable,它允许您将图像定位到文本的左/右/上/下)

1) 自定义列表视图

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

2) 标准列表视图

在默认 textview 上调用 setCompoundDrawableWithIntrinsicBounds 为您的图像设置适当的 Drawable。要将您的位图转换为可绘制对象,请参阅如何在 android 中将位图转换为可绘制对象?

于 2012-12-13T22:31:56.950 回答
0

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

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

于 2012-12-13T22:41:45.483 回答