import android.content.Context; import android.widget.ImageView; import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoaderConfiguration; import com.nostra13.universalimageloader.core.assist.QueueProcessingType; import com.nostra13.universalimageloader.core.download.BaseImageDownloader; import com.nostra13.universalimageloader.core.download.ImageDownloader; /** * 异步加载本地图片工具类 * * */ public class LoadLocalImageUtil { private LoadLocalImageUtil(Context context) { ImageLoaderConfiguration config = new ImageLoaderConfiguration .Builder(context) .memoryCacheExtraOptions(480, 800) // maxwidth, max height,即保存的每个缓存文件的最大长宽 .threadPoolSize(3)//线程池内加载的数量 .threadPriority(Thread.NORM_PRIORITY -2) .denyCacheImageMultipleSizesInMemory() .memoryCache(new UsingFreqLimitedMemoryCache(2* 1024 * 1024)) // You can pass your own memory cache implementation/你可以通过自己的内存缓存实现 .memoryCacheSize(2 * 1024 * 1024) .discCacheSize(50 * 1024 * 1024) //.discCacheFileNameGenerator(newMd5FileNameGenerator())//将保存的时候的URI名称用MD5 加密 .tasksProcessingOrder(QueueProcessingType.LIFO) .discCacheFileCount(100) //缓存的文件数量 //.discCache(new UnlimitedDiscCache(cacheDir))//自定义缓存路径 //.defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // .imageDownloader(new BaseImageDownloader(this,5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间 .writeDebugLogs() // Remove for releaseapp .build();//开始构建 ImageLoader.getInstance().init(config); } private static LoadLocalImageUtil instance = null; public static synchronized LoadLocalImageUtil getInstance(Context context) { if (instance == null) { instance = new LoadLocalImageUtil(context); } return instance; } /** * 从内存卡中异步加载本地图片 * * @param uri * @param imageView */ public void displayFromSDCard(String uri, ImageView imageView) { // String imageUri = "file:///mnt/sdcard/image.png"; // from SD card // ImageLoader.getInstance().displayImage("file://" + uri, imageView); ImageLoader.getInstance().displayImage(ImageDownloader.Scheme.FILE.wrap(uri), imageView); } /** * 从assets文件夹中异步加载图片 * * @param imageName * 图片名称,带后缀的,例如:1.png * @param imageView */ public void dispalyFromAssets(String imageName, ImageView imageView) { // String imageUri = "assets://image.png"; // from assets ImageLoader.getInstance().displayImage("assets://" + imageName, imageView); } /** * 从drawable中异步加载本地图片 * * @param imageId * @param imageView */ public void displayFromDrawable(int imageId, ImageView imageView) { // String imageUri = "drawable://" + R.drawable.image; // from drawables // (only images, non-9patch) ImageLoader.getInstance().displayImage("drawable://" + imageId, imageView); } /** * 从内容提提供者中抓取图片 */ public void displayFromContent(String uri, ImageView imageView) { // String imageUri = "content://media/external/audio/albumart/13"; // // from content provider ImageLoader.getInstance().displayImage("content://" + uri, imageView); } }
ImageLoader加载图片工具类
最新推荐文章于 2024-01-17 18:18:38 发布