ImageLoader上网获取图片开源框架

来源:互联网 发布:安卓java模拟器星星 编辑:程序博客网 时间:2024/05/22 07:43

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"/>


0 0
原创粉丝点击