ImageLoader,获取图片

//主Activity
public class MainActivity extends AppCompatActivity {

    private ImageView imageView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imageView = (ImageView) findViewById(R.id.image);

    }

    public void imageLoad(View view){
        //使用imageloader加载图片

//        ImageLoader.getInstance().displayImage("http://p1.pstatp.com/list/39a80000a236833755b2",imageView);

        //ImageLoader.getInstance().displayImage("http://p3.pstatp.com/video1609/37ca0002fc54a831c948",imageView,ImageLoaderUtils.getDefautOption());

        ImageLoader.getInstance().displayImage("http://p3.pstatp.com/list/39a90000bbaa05b118eb",imageView,ImageLoaderUtils.getCircleOption());

    }
}
//ImageLoaderUtils 
public class ImageLoaderUtils {
    /**
     * 初始化imageloader的配置
     * @param context
     */
    public static void initConfigration(Context context) {

        File cacheDir = StorageUtils.getCacheDirectory(context);  //缓存文件夹路径

        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
                .threadPoolSize(3)//一般就是3,,,1-5
                .threadPriority(Thread.NORM_PRIORITY - 2) // default 设置当前线程的优先级,,,1-10
                .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为使用HASHCODEUIL进行加密命名, 还可以用MD5(new Md5FileNameGenerator())加密
                .diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
                .imageDownloader(new BaseImageDownloader(context)) // default
                .imageDecoder(new BaseImageDecoder(true)) // default
                .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default
                .writeDebugLogs() // 打印debug log
                .build(); //开始构建

        //初始化
        ImageLoader.getInstance().init(config);
    }

    public static DisplayImageOptions getDefautOption() {

        DisplayImageOptions imageOptions = new DisplayImageOptions.Builder()
                .showImageForEmptyUri(R.mipmap.ic_launcher)
                .showImageOnFail(R.mipmap.ic_launcher)
                .showImageOnLoading(R.mipmap.ic_launcher)
                .cacheInMemory(true)
                .cacheOnDisk(true)
                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
                .resetViewBeforeLoading(true)//在加载之前复位一下显示
                .bitmapConfig(Bitmap.Config.RGB_565)//图片的质量
                .considerExifParams(true)///是否考虑JPEG图像EXIF参数(旋转,翻转)
                .build();
        return imageOptions;
    }

    /**
     * 圆形图片的配置
     * @return
     */
    public static DisplayImageOptions getCircleOption() {
        DisplayImageOptions imageOptions = new DisplayImageOptions.Builder()
                .showImageForEmptyUri(R.mipmap.ic_launcher)
                .showImageOnFail(R.mipmap.ic_launcher)
                .showImageOnLoading(R.mipmap.ic_launcher)
                .cacheInMemory(true)
                .cacheOnDisk(true)
                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
                .resetViewBeforeLoading(true)//在加载之前复位一下显示
                .bitmapConfig(Bitmap.Config.RGB_565)//图片的质量
                .considerExifParams(true)///是否考虑JPEG图像EXIF参数(旋转,翻转)
                .displayer(new CircleBitmapDisplayer())//圆形显示

                .build();
        return imageOptions;
    }

    /**
     * 加载圆角图片
     * @return
     */
    public static DisplayImageOptions getBoundOption() {
        DisplayImageOptions imageOptions = new DisplayImageOptions.Builder()
                .showImageForEmptyUri(R.mipmap.ic_launcher)
                .showImageOnFail(R.mipmap.ic_launcher)
                .showImageOnLoading(R.mipmap.ic_launcher)
                .cacheInMemory(true)
                .cacheOnDisk(true)
                .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
                .resetViewBeforeLoading(true)//在加载之前复位一下显示
                .bitmapConfig(Bitmap.Config.RGB_565)//图片的质量
                .considerExifParams(true)///是否考虑JPEG图像EXIF参数(旋转,翻转)

                .displayer(new RoundedBitmapDisplayer(20))//指定加载圆角的大小

                .build();
        return imageOptions;
    }
}
//ImageApplication
public class ImageApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        ImageLoaderUtils.initConfigration(this);
    }
}
//BaseApplication
public class BaseApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        //进行imageLoader的默认配置...上下文
        ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(this);
        //初始化一下imageloader
        ImageLoader.getInstance().init(configuration);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_40071033/article/details/77898410