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

3/1/2017来源:Android开发人气:933

1、下载地址:https://github.com/nostra13/Android-Universal-Image-Loader 2、添加库依赖和写读取SD和联网的权限。 3、初始化Image-Loader public 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));