Android知识点5-Universal_image_loader加载网络图片

来源:互联网 发布:kdl55w800b安装软件 编辑:程序博客网 时间:2024/06/07 11:45

开源框架的使用,使我们更快的开发,增加了效率,今天就来学习一下Universal_image_loader的用法。

转载请标明出处:http://blog.csdn.net/Bingsman/article/details/48246095

首先,去github上下载所需要的jar包,下载地址:https://github.com/nostra13/Android-Universal-Image-Loader;
接着就是搭配环境了
1-将下载的jar包放到工程的lib包,并创建一个显示图片的布局

<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:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <ImageView        android:id="@+id/imageview"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="@string/hello_world" /></RelativeLayout>

2-添加权限

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

3-初始化配置有两种方法
(1)是默认配置(都是在onCreate方法中操作)

// 默认配置ImageLoaderConfiguration configuration =ImageLoaderConfiguration.createDefault(this);//初始化ImageLoader.getInstance().init(configuration);

(2)自己设置(一般项目都是自己配置)

// 自己配置        File cacheDir = StorageUtils.getCacheDirectory(MainActivity.this); // 缓存文件夹路径        ImageLoaderConfiguration configuration = new ImageLoaderConfiguration.Builder(                MainActivity.this)                .memoryCacheExtraOptions(480, 800)                // default = device screen dimensions 内存缓存文件的最大长宽                .diskCacheExtraOptions(480, 800, null)                // 本地缓存的详细信息(缓存的最大长宽),最好不要设置这个                .taskExecutor(null)                .taskExecutorForCachedImages(null)                .threadPoolSize(3)                // default 线程池内加载的数量                .threadPriority(Thread.NORM_PRIORITY - 2)                // default 设置当前线程的优先级                .tasksProcessingOrder(QueueProcessingType.FIFO)                // default                .denyCacheImageMultipleSizesInMemory()                .memoryCache(new LruMemoryCache(2 * 1024 * 1024))                // 可以通过自己的内存缓存实现                .memoryCacheSize(2 * 1024 * 1024)                // 内存缓存的最大值                .memoryCacheSizePercentage(13)                // default                .diskCache(new UnlimitedDiskCache(cacheDir))                // default 可以自定义缓存路径                .diskCacheSize(50 * 1024 * 1024)                // 50 Mb sd卡(本地)缓存的最大值                .diskCacheFileCount(100)                // 可以缓存的文件数量                // default为使用HASHCODE对UIL进行加密命名, 还可以用MD5(new                // Md5FileNameGenerator())加密                .diskCacheFileNameGenerator(new HashCodeFileNameGenerator())                .imageDownloader(new BaseImageDownloader(MainActivity.this)) // default                .imageDecoder(new BaseImageDecoder(false)) // default                .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default                .writeDebugLogs() // 打印debug log                .build(); // 开始构建//初始化        ImageLoader.getInstance().init(configuration);

4-配置加载图片的选项

DisplayImageOptions options = new DisplayImageOptions.Builder()        .showImageOnLoading(R.drawable.default) // 默认图片        .showImageForEmptyUri(R.drawable.empty) // resource or drawable        .showImageOnFail(R.drawable.error) // resource or drawable        .resetViewBeforeLoading(false)  // default        .delayBeforeLoading(1000)        .cacheInMemory(false) // default        .cacheOnDisk(false) // default        .preProcessor(...)        .postProcessor(...)        .extraForDownloader(...)        .considerExifParams(false) // default        .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default        .bitmapConfig(Bitmap.Config.ARGB_8888) // default        .decodingOptions(...)        .displayer(new SimpleBitmapDisplayer()) // default        .handler(new Handler()) // default        .build();

5-加载方式有
(1)loadimage()加载图片–ImageLoadingListener加载

//百度随便找一张图片就行String imageUrl = "http://a.hiphotos.baidu.com/image/h%3D200/sign="                + "af9259bf03082838770ddb148898a964/6159252dd42a2834bc76c4ab5fb5c9ea14cebfba.jpg";             //显示图片的配置          DisplayImageOptions options = new DisplayImageOptions.Builder()                  .showImageOnLoading(R.drawable.default)                  .showImageOnFail(R.drawable.erron)                  .cacheInMemory(true)   //缓存机制                .cacheOnDisk(true)                  .bitmapConfig(Bitmap.Config.RGB_565)                  .build();          //加载图片第一种方式:loadimage()--ImageLoadingListener加载图片        ImageLoader.getInstance().loadImage(imageUrl,                new ImageLoadingListener() {                    @Override                    public void onLoadingCancelled(String arg0, View arg1) {                        // TODO Auto-generated method stub                    }                    @Override                    public void onLoadingComplete(String arg0, View arg1,                            Bitmap bm) {                        // TODO Auto-generated method stub                        imageView.setImageBitmap(bm);                    }                    @Override                    public void onLoadingFailed(String arg0, View arg1,                            FailReason arg2) {                        // TODO Auto-generated method stub                    }                    @Override                    public void onLoadingStarted(String arg0, View arg1) {                        // TODO Auto-generated method stub                    }                });

(2)loadimage()加载图片–SimpleImageLoadingListener加载(使用的是缺省适配器模式)

//加载图片第一种方式:loadimage()--SimpleImageLoadingListener加载图片ImageLoader.getInstance().loadImage(imageUrl, new SimpleImageLoadingListener(){            @Override            public void onLoadingComplete(String imageUri, View view,                    Bitmap loadedImage) {                super.onLoadingComplete(imageUri, view, loadedImage);                imageView.setImageBitmap(loadedImage);            }        });

(3)displayImage()加载图片

//显示图片的配置          DisplayImageOptions options = new DisplayImageOptions.Builder()                  .showImageOnLoading(R.drawable.ic_launcher)                  .showImageOnFail(R.drawable.ic_launcher)                  .cacheInMemory(true)                  .cacheOnDisk(true)                  .bitmapConfig(Bitmap.Config.RGB_565)                  .build();          ImageLoader.getInstance().displayImage(imageUrl, imageView, options);

6-一些额外设置

//图片大小ImageSize imageView= new ImageSize(200, 200);   //显示图片的配置  DisplayImageOptions options = new DisplayImageOptions.Builder()                  .showImageOnLoading(R.drawable.default)                  .showImageOnFail(R.drawable.erron)                  .cacheInMemory(true)   //缓存机制                .cacheOnDisk(true)                  .bitmapConfig(Bitmap.Config.RGB_565)                  .build();          ImageLoader.getInstance().loadImage(imageUrl, imageView,options, new SimpleImageLoadingListener()……)

运行结果
这是根据网上资料总结,如有雷同,纯属巧合,不喜勿喷,谢谢合作

源码点击下载

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 老爸不爱吃饭身体不好怎么办 小朋友在日本旅游生病怎么办 小朋友不吃饭装生病怎么办 带小朋友去苏梅岛生病了怎么办 练完舞蹈腿疼怎么办 过度运动后肌肉特别酸痛怎么办 锻炼把脚扭伤了怎么办 生完孩子变胖了怎么办 喝了啤酒肚子撑怎么办 小孩把口香糖吞进肚子怎么办 臂力器手柄坏了怎么办 30臂力棒掰不动怎么办 杯子盖子拧紧了打不开怎么办 深蹲以后腿软怎么办 小孩摔跤破皮了怎么办 手机qq账号密码忘了怎么办 刚满月宝宝喷奶怎么办 两个月的宝宝不爱吃奶怎么办 仓鼠走路画圈了怎么办 力气大但扳手腕不行怎么办 只睡了两个小时怎么办 微博账号被冻结了怎么办 微博一天多次解冻怎么办 肿瘤对化疗不敏感怎么办 2个月宝宝肺炎怎么办 小孩咳嗽2个月怎么办 两个月的小孩子气管炎怎么办? 小孩子两个月发烧38度怎么办 两个月的小孩子咳嗽怎么办 5个月宝宝吃奶少怎么办 26岁的1型糖尿病怎么办 睡前吃得太饱怎么办 胰岛素2小时>300怎么办 血清c肽测定高怎么办 体测蛋白质和骨骼肌偏高怎么办 半个月重了十斤怎么办 月经停了2个月怎么办 在练腹肌中腹痛怎么办 越练肌肉越肥怎么办 喘不过气来 心闷怎么办 被气得喘不过气怎么办