文章标题 ImageLoader工具类

来源:互联网 发布:人族剑士捏脸数据 编辑:程序博客网 时间:2024/06/01 08:21

package com.example.a17_rikao_test;

import android.content.Context;
import android.graphics.Bitmap;

import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.ImageScaleType;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
import com.nostra13.universalimageloader.core.decode.BaseImageDecoder;
import com.nostra13.universalimageloader.core.display.CircleBitmapDisplayer;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.nostra13.universalimageloader.core.display.SimpleBitmapDisplayer;
import com.nostra13.universalimageloader.core.download.BaseImageDownloader;
import com.nostra13.universalimageloader.utils.StorageUtils;

import java.io.File;

/**
* @author Dash
* @date 2017/9/15
* @description:
*/
public class ImageLoaderUtil {
/**
* 初始化imageLoader
* @param context
*/
public static void init(Context context) {
//1.获取配置config对象
File cacheDir = StorageUtils.getCacheDirectory(context); //缓存文件夹路径

    ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)            .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(context)) // default            .imageDecoder(new BaseImageDecoder(true)) // default            .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default            .writeDebugLogs() // 打印debug log            .build(); //开始构建    //2.初始化配置...ImageLoader.getInstance()图片加载器的对象,单例模式    ImageLoader.getInstance().init(config);}/** * imageLoader加载图片的默认选项 * @return */public static DisplayImageOptions getDefaultOption(){    DisplayImageOptions options = new DisplayImageOptions.Builder()            .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片            .showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片            .showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片            .resetViewBeforeLoading(true)  // default 设置图片在加载前是否重置、复位            .delayBeforeLoading(1000)  // 下载前的延迟时间            .cacheInMemory(true) // default  设置下载的图片是否缓存在内存中            .cacheOnDisk(true) // default  设置下载的图片是否缓存在SD卡中            .considerExifParams(true) // default            .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default 设置图片以如何的编码方式显示            .bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型            .displayer(new SimpleBitmapDisplayer()) // default  还可以设置圆角图片new RoundedBitmapDisplayer(20)            .build();    return options;}/** * imageLoader加载圆角图片....指定圆角的大小 * @return */public static DisplayImageOptions getRoundedOption(int corner){    DisplayImageOptions options = new DisplayImageOptions.Builder()            .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片            .showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片            .showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片            .resetViewBeforeLoading(true)  // default 设置图片在加载前是否重置、复位            .delayBeforeLoading(1000)  // 下载前的延迟时间            .cacheInMemory(true) // default  设置下载的图片是否缓存在内存中            .cacheOnDisk(true) // default  设置下载的图片是否缓存在SD卡中            .considerExifParams(true) // default            .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default 设置图片以如何的编码方式显示            .bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型            .displayer(new RoundedBitmapDisplayer(corner)) // default  还可以设置圆角图片new RoundedBitmapDisplayer(20)            .build();    return options;}/** * imageLoader加载圆形图片 * @return */public static DisplayImageOptions getCircleOption(){    DisplayImageOptions options = new DisplayImageOptions.Builder()            .showImageOnLoading(R.mipmap.ic_launcher) // 设置图片下载期间显示的图片            .showImageForEmptyUri(R.mipmap.ic_launcher) // 设置图片Uri为空或是错误的时候显示的图片            .showImageOnFail(R.mipmap.ic_launcher) // 设置图片加载或解码过程中发生错误显示的图片            .resetViewBeforeLoading(true)  // default 设置图片在加载前是否重置、复位            .delayBeforeLoading(1000)  // 下载前的延迟时间            .cacheInMemory(true) // default  设置下载的图片是否缓存在内存中            .cacheOnDisk(true) // default  设置下载的图片是否缓存在SD卡中            .considerExifParams(true) // default            .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default 设置图片以如何的编码方式显示            .bitmapConfig(Bitmap.Config.RGB_565) // default 设置图片的解码类型            .displayer(new CircleBitmapDisplayer()) // default  还可以设置圆角图片new RoundedBitmapDisplayer(20)            .build();    return options;}

}

StringUtil工具类

private String streamToString(InputStream inputStream,String charset) {
try {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream,charset);

        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);        String s = null;        StringBuilder builder = new StringBuilder();        while ((s = bufferedReader.readLine()) != null){            builder.append(s);        }        bufferedReader.close();        return builder.toString();    } catch (Exception e) {        e.printStackTrace();    }    return  null;}

//判断网络的工具类
public class NetUtils {
/**
* 1.判断是否有网络连接
*/
public static boolean isNetWorkConnected(Context context){
//获取手机所有连接管理对象
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
//获取网路信息对象
NetworkInfo networkInfo = manager.getActiveNetworkInfo();

    if (networkInfo != null){        //是否可用        boolean available = networkInfo.isAvailable();        return  available;    }    return false;}/** * 2.判断可用网络连接的类型...wifi...手机网络 * * ConnectivityManager.TYPE_WIFI * ConnectivityManager.TYPE_MOBILE */public static int netType(Context context){    //获取手机所有连接管理对象    ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);    //获取网路信息对象    NetworkInfo networkInfo = manager.getActiveNetworkInfo();    //不为空且可用    if (networkInfo != null && networkInfo.isAvailable()){        return networkInfo.getType();    }    return -1;}
原创粉丝点击