ImageLoader是一种老式上网获取图片开源框架,也是最常用的一种。
1.首先去https://github.com/网站下载universal-image-loader-1.9.5.jar。
去网站搜索Android-Universal-Image-Loader 点击进入
再点击downloads包进入
第2个jar就是了点击进入
点击Download直接下载就行了
下载完成后导入jar成小奶瓶
*****************************************************************************************************************
下面是代码的逻辑:
1.首先创建一个类继承Application重写下这个类的方法
package us.mifeng.imageloadertest.app;
import java.io.File;
import us.mifeng.imageloadertest.R;
import android.app.Application;
import android.content.Context;
import android.graphics.Bitmap;
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 com.nostra13.universalimageloader.utils.StorageUtils;
public class MyApplication extends Application {
public static ImageLoader imageLoader;
public static ImageLoaderConfiguration imageConfig;
public static DisplayImageOptions options1;
//懒汉式
public static ImageLoader getImageLoader(Context context){
if (imageLoader==null) {
//用这个方法得到imageloader;
imageLoader=ImageLoader.getInstance();
//设置一些配置参数,默认的配置参数
setConf(context);
imageLoader.init(imageConfig);
}
return imageLoader;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
}
public static void setConf(Context context){
File cacheDir = StorageUtils.getCacheDirectory(context);
imageConfig = new ImageLoaderConfiguration.Builder(context)
.memoryCacheExtraOptions(480, 800) // max width, 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(new Md5FileNameGenerator())//将保存的时候的URI名称用MD5 加密
.tasksProcessingOrder(QueueProcessingType.LIFO)
.discCacheFileCount(100) //缓存的文件数量
.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
.imageDownloader(new BaseImageDownloader(context, 5 * 1000, 30 * 1000)) // connectTimeout (5 s), readTimeout (30 s)超时时间
.writeDebugLogs() // Remove for release app
.build();//开始构建
/*参数1:一个网址或者是一个地址
* 参数2:imageview
* 参数3:options选项:配置的设置,我们可以通过option来设定图片显示的样式
*/
options1 = 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(100))//是否设置为圆角,弧度为多少
.displayer(new FadeInBitmapDisplayer(100))//是否图片加载好后渐入的动画时间
.build();//构建完成
//imageLoader.displayImage(uri, imageview, options)
}
}
********************************************************************
2.回到主类直接调用就行了
public class MainActivity extends Activity {
private ImageView iv;
private ImageLoader imageLoader;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv);
imageLoader = MyApplication.getImageLoader(getApplicationContext());
imageLoader.displayImage("http://guaju.github.io/flower2.jpg", iv, MyApplication.options1);
}
}
图片的大小可以直接在布局的设置
最后不要忘记加上权限
<uses-permission android:name="android.permission.INTERNET"/>