当前位置:   article > 正文

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

relativelayout加载 universalimageloader

开源框架的使用,使我们更快的开发,增加了效率,今天就来学习一下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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

2-添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
    </uses-permission>
<uses-permission android:name="android.permission.INTERNET" >
    </uses-permission>
  • 1
  • 2
  • 3
  • 4

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

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

(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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

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();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

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
                    }
                });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

(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);
            }

        });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

(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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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()……)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

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

源码点击下载

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/105781
推荐阅读
相关标签
  

闽ICP备14008679号