Glide开源框架是Google推荐的图片载入和缓框架,其在Github上的开源地址是:https://github.com/bumptech/glide
当然一个Google推荐的框架肯定就是Volley啦。

眼下Android主流开发工具是AndroidStudio,在AndroidStudio怎样使用Glide,https://github.com/bumptech/glide上有具体的介绍说明。

由于刚换新工作不久,公司和的还是Eclipse,所以学习Glide我临时还用的Eclipse开发工具。

步骤:

  1. 加入glide.jar包到项目中。jar包能够在网上下载。

  2. 编写代码
public class MainActivity extends Activity {
    private ImageView glide_iv;
    private ListView glide_lv;
    private static final String URL ="这里写图片url";
    private List<String> urls = new ArrayList<String>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initDatas();
        glide_iv = (ImageView) findViewById(R.id.glide_iv);
        // 通过以下这句代码把网络图片载入到ImageView中。非常方便
        //Glide的with方法不仅接受Context,还接受Activity 和 Fragment等。Context会自己主动的从他们获取,使用非常方便
        Glide.with(this).load(URL).into(glide_iv);
        glide_lv = (ListView) findViewById(R.id.glide_lv);
        glide_lv.setAdapter(new BaseAdapter() {

            @Override
            public View getView(int arg0, View contentView, ViewGroup arg2) {
                ViewHolder holder=null;
                if (contentView == null) {
                    holder=new ViewHolder();
                    contentView= LayoutInflater.from(
                            MainActivity.this).inflate(R.layout.my_image_view,
                            null);
                    holder.itemIv = contentView.findViewById(R.id.item_iv);
                    contentView.setTag(holder);
                } else {
                    holder=(ViewHolder) contentView.getTag();
                }

                String url = urls.get(arg0);
                //在ListView中载入列表图片
                Glide.with(MainActivity.this).load(url).centerCrop()
                        .placeholder(R.drawable.ic_launcher).crossFade()
                        .into(holder.itemIv);

                return contentView;
            }

            @Override
            public long getItemId(int arg0) {
                // TODO Auto-generated method stub
                return arg0;
            }

            @Override
            public Object getItem(int arg0) {
                // TODO Auto-generated method stub
                return urls.get(arg0);
            }

            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                return urls.size();
            }
            class ViewHolder{
                ImageView itemIv;
            }
        });
    }

    /**
     * 加入数据
     */
    private void initDatas() {
        for (int i = 0; i < 5; i++) {
            urls.add(URL);
        }
    }
}

布局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp" >

    <ImageView
        android:id="@+id/glide_iv"
        android:layout_width="80dp"
        android:layout_height="80dp" />

    <ListView
        android:id="@+id/glide_lv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" 
        android:layout_below="@id/glide_iv">
    </ListView>

</RelativeLayout>

最后记得在AndroidManifest.xml中加入网络权限:

<uses-permission android:name="android.permission.INTERNET" >