首页 > 学院 > 开发设计 > 正文

图片加载库:ImageLoader的基本使用

2019-11-06 09:34:17
字体:
来源:转载
供稿:网友
1、下载地址:https://github.com/nostra13/Android-Universal-Image-Loader2、添加库依赖和写读取SD和联网的权限。3、初始化Image-Loaderpublic class MyApp extends application {    @Override    public void onCreate() {        super.onCreate();        initImageLoader(getApplicationContext());    }    public static void initImageLoader(Context context){        ImageLoaderConfiguration.Builder config=new ImageLoaderConfiguration.Builder(context);        //线程优先级        config.threadPRiority(Thread.NORM_PRIORITY-2);        //是不是支持多尺寸缓存        config.denyCacheImageMultipleSizesInMemory();        //缓存文件加密规则        config.diskCacheFileNameGenerator(new md5FileNameGenerator());        //容量上限        config.diskCacheSize(50*1024*1024);        //图片加载顺序  LIFO(后进先出) FIFO(先进先出)(它要把图片放入到线程池当中,那么谁先加载就需要规则来定义了)        config.tasksProcessingOrder(QueueProcessingType.FIFO);        //是否打印日志       // config.writeDebugLogs();        ImageLoader.getInstance().init(config.build());           }}4、初始化option protected void onCreate(Bundle savedInstanceState) {       super.onCreate(savedInstanceState);       setContentView(R.layout.activity_main);       mImageView= (ImageView) findViewById(R.id.imgv);       //选项构建链       mOptions=new DisplayImageOptions.Builder()               //图片还没加载的时候               .showImageForEmptyUri(R.mipmap.ic_launcher)               //加载图片失败的时候               .showImageOnFail(R.mipmap.ic_launcher)               //图片正在加载的时候               .showImageOnLoading(R.mipmap.ic_launcher)               //图片加载的时候重置控件的状态(比如动画)//             .resetViewBeforeLoading(true)               //是否支持内存的缓存,这个不可缺               .cacheOnDisk(true)               //加载精确图还是缩略图(EXACTLY原图)               .imageScaleType(ImageScaleType.EXACTLY)               //图片的格式               .bitmapConfig(Bitmap.Config.RGB_565)               //是否显示相机的设备信息               .considerExifParams(false)               //特效:FadeInBitmapDisplayer(300)淡入淡出效果。               // RoundedBitmapDisplayer(20,2)圆角图片,2表示边距。20是圆角               //RoundedVignetteBitmapDisplayer(20,2),表示圆角并且四周有阴影               //CircleBitmapDisplayer(Color.RED,5),表示圆形,边框为5,红色               .displayer(new FadeInBitmapDisplayer(300))               .build();   }5、监听:public void go1(View v) {    Toast.makeText(this"", Toast.LENGTH_SHORT).show();    //三参    //displayImage( )需要传入3个参数:地址,呈现的控件,option    ImageLoader.getInstance().displayImage("http://192.168.1.53:8080/FWQ2/a1.jpg",mImageView,mOptions);}public void go2(View v) {    Toast.makeText(this"", Toast.LENGTH_SHORT).show();    //四参,有个图片监听    ImageLoader.getInstance().displayImage("http://192.168.1.53:8080/FWQ2/a1.jpg"mImageViewmOptionsnew ImageLoadingListener() {        @Override//开始加载        public void onLoadingStarted(String s, View view) {        }        @Override//加载失败        public void onLoadingFailed(String s, View view, FailReason failReason) {        }        @Override//加载完成        public void onLoadingComplete(String s, View view, Bitmap bitmap) {            //加载的图片像素是动态的,呈现图片的imgv越大加载的图片;像素也是越大的。            System.out.println("MainActivity.onLoadingComplete"+bitmap.getWidth()+""+bitmap.getHeight());        }        @Override//加载取消        public void onLoadingCancelled(String s, View view) {        }    });}public void go3(View v) {    Toast.makeText(this"", Toast.LENGTH_SHORT).show();    //五参,加载图片的进度    ImageLoader.getInstance().displayImage("http://192.168.1.53:8080/FWQ2/a1.jpg"mImageViewmOptionsnew ImageLoadingListener() {        @Override//开始加载        public void onLoadingStarted(String s, View view) {        }        @Override//加载失败        public void onLoadingFailed(String s, View view, FailReason failReason) {        }        @Override//加载完成        public void onLoadingComplete(String s, View view, Bitmap bitmap) {            //加载的图片像素是动态的,呈现图片的imgv越大加载的图片;像素也是越大的。            System.out.println("MainActivity.onLoadingComplete" + bitmap.getWidth() + "" + bitmap.getHeight());        }        @Override//加载取消        public void onLoadingCancelled(String s, View view) {        }    }, new ImageLoadingProgressListener() {        @Override        // i是当前加载进度,i1是总量        public void onProgressUpdate(String s, View view, int i, int i1) {            System.out.println("i = [" + i + "], i1 = [" + i1 + "]");        }    });}public void go4(View v) {    Toast.makeText(this"", Toast.LENGTH_SHORT).show();    //清除缓存    ImageLoader.getInstance().clearMemoryCache();    ImageLoader.getInstance().clearDiskCache();//优先缓存在data文件夹下面}6、在listView的条目中有图片,当快速滑动的时候是不会加载图片的。//第一个布尔值是设置慢慢滑动时是否加载图片,第二个是快速滑动时候是否加载。listView.setOnScrollChangeListener(new PauSEOnScrollListener(ImageLoader.getInstance(),true,false));
上一篇:一个天气api

下一篇:Handler分析

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表