【问题标题】:show images from external links in listview在列表视图中显示来自外部链接的图像
【发布时间】:2012-12-01 21:51:30
【问题描述】:

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

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

【问题讨论】:

    标签: android listview imageview


    【解决方案1】:

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

    现在你有两个选择:

    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。要将您的位图转换为可绘制对象,请参阅How to convert a Bitmap to Drawable in android?

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-08-04
        • 1970-01-01
        • 1970-01-01
        • 2013-06-01
        • 2012-09-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多