手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android开发中ImageLoder进行图片加载和缓存
Android开发中ImageLoder进行图片加载和缓存
摘要:图片处理类:packagecom.longfei.admin.imageloder_text;importandroid.app.Appli...

图片处理类:

package com.longfei.admin.imageloder_text; import android.app.Application; import android.graphics.Bitmap; import android.os.Environment; import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache; import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator; import com.nostra13.universalimageloader.cache.memory.impl.UsingFreqLimitedMemoryCache; 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.display.FadeInBitmapDisplayer; import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer; import com.nostra13.universalimageloader.core.download.BaseImageDownloader; import java.io.File; /** * Created by admin on 2016/4/9. */ public class ImageLoading extends Application { @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder( this) .memoryCacheExtraOptions(480, 800) // max width, max height,即保存的每个缓存文件的最大长宽 .discCacheExtraOptions(480, 800, null) // Can slow ImageLoader, use it carefully (Better don't use // it)/设置缓存的详细信息,最好不要设置这个 .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(new Md5FileNameGenerator()) // 将保存的时候的URI名称用MD5 加密 .tasksProcessingOrder(QueueProcessingType.LIFO) .discCacheFileCount(100) // 缓存的文件数量 .discCache( new UnlimitedDiscCache(new File(Environment .getExternalStorageDirectory() + "/myApp/imgCache"))) // 自定义缓存路径 .defaultDisplayImageOptions(getDisplayOptions()) .imageDownloader( new BaseImageDownloader(this, 5 * 1000, 30 * 1000)) .writeDebugLogs() // Remove for release app .build();// 开始构建 ImageLoader.getInstance().init(config); } private DisplayImageOptions getDisplayOptions() { DisplayImageOptions options; options = new DisplayImageOptions.Builder() .showImageOnLoading(R.drawable.ic_launcher) // 设置图片在下载期间显示的图片 .showImageForEmptyUri(R.drawable.ic_launcher)// 设置图片Uri为空或是错误的时候显示的图片 .showImageOnFail(R.drawable.ic_launcher) // 设置图片加载/解码过程中错误时候显示的图片 .cacheInMemory(true)// 设置下载的图片是否缓存在内存中 .cacheOnDisc(true)// 设置下载的图片是否缓存在SD卡中 .considerExifParams(true) // 是否考虑JPEG图像EXIF参数(旋转,翻转) .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)// 设置图片以如何的编码方式显示 .bitmapConfig(Bitmap.Config.RGB_565)// 设置图片的解码类型// // .delayBeforeLoading(int delayInMillis)//int // delayInMillis为你设置的下载前的延迟时间 // 设置图片加入缓存前,对bitmap进行设置 // .preProcessor(BitmapProcessor preProcessor) .resetViewBeforeLoading(true)// 设置图片在下载前是否重置,复位 .displayer(new RoundedBitmapDisplayer(20))// 是否设置为圆角,弧度为多少 .displayer(new FadeInBitmapDisplayer(100))// 是否图片加载好后渐入的动画时间 .build();// 构建完成 return options; } } package com.longfei.admin.imageloder_text; import android.app.Activity; import android.graphics.Bitmap; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ImageView; import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.assist.FailReason; import com.nostra13.universalimageloader.core.listener.ImageLoadingListener; /** * 1、 Universal-ImageLoader的配置 * * 2、用Universal-ImageLoader加载网络图片和本地图片 * * @author Administrator */ public class MainActivity extends Activity { private ImageLoader loader; private ImageView iv_img; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); loader=ImageLoader.getInstance();//实例化ImageLoder iv_img=(ImageView)findViewById(R.id.iv_img); String url="file:///"+"加载本地图片"; //加载网络图片,第一个参数为路径 // loader.displayImage("http://static.oschina.net/uploads/user/494/988131_100.jpg",iv_img); loader.displayImage("http://static.oschina.net/uploads/user/494/988131_100.jpg", iv_img, new ImageLoadingListener() { @Override public void onLoadingStarted(String s, View view) { Log.i("info","加载开始"); } @Override public void onLoadingFailed(String s, View view, FailReason failReason) { Log.i("info","加载失败"); } @Override public void onLoadingComplete(String s, View view, Bitmap bitmap) { Log.i("info","加载完毕"); } @Override public void onLoadingCancelled(String s, View view) { Log.i("info","加载取消"); } }); } }

【Android开发中ImageLoder进行图片加载和缓存】相关文章:

Android开发之SurfaceView显示动画效果

Android UI开发专题(二) 之绘图基础

android内存优化之图片优化

Android开发之表格布局

Android开发: fragment解析及案例

Android开发之串口编程原理和实现方式

Android 中对于图片的内存优化方法

Android应用开发中对Bitmap的内存优化

在android开发中进行数据存储与访问的多种方式介绍

android Imageview 图片覆盖具体实现

精品推荐
分类导航