• Android图片载入缓存框架Glide


    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" >
  • 相关阅读:
    golang json字符串合并操作
    goland 无法跳转 struct等
    golang 中mgo update报错: The dollar ($) prefixed field '$inc' in '$inc' is not valid for storage.
    解决windows下使用vscode没有函数提示的问题
    【转载,实测好用】gitlab结合sourcetree使用
    C++单继承、多继承情况下的虚函数表分析
    Linux 日志文件管理——限制大小
    C++ RCSP智能指针简单实现与应用
    Makefile模板(C++)
    Git关于pull,commit,push的总结
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7225491.html
Copyright © 2020-2023  润新知