首页 > 代码库 > 第三方开源框架图片展示UIL

第三方开源框架图片展示UIL

1.在app/build.gradle里面添加如下依赖(https://github.com/nostra13/Android-Universal-Image-Loader](https://github.com/nostra13/Android-Universal-Image-Loader):

compile ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5‘

2.添加权限:

<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

3.布局:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="www.itcast.com.testuil.MainActivity">    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:onClick="show"        android:text="展示图片" />    <ImageView        android:id="@+id/iv"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="http://www.mamicode.com/@mipmap/ic_launcher" /></LinearLayout>

4.主要代码:

public class MainActivity extends AppCompatActivity {    //要展示的网络图片url    public static final String URL_IMG2 = "http://img2.3lian.com/2014/f7/5/d/22.jpg";    //展示图片的控件    private ImageView iv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initView();    }    private void initView() {        iv = (ImageView) findViewById(R.id.iv);        // ImageLoaderConfiguration 简单初始化        ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(this);        // 初始化配置        ImageLoader.getInstance().init(configuration);    }    //展示图片的方法    public void show(View view) {        //显示图片   动态纹理技术        DisplayImageOptions options = new DisplayImageOptions.Builder()                .showImageOnLoading(R.mipmap.ic_launcher)                .displayer(new FadeInBitmapDisplayer(3000))                .build();        ImageLoader.getInstance().displayImage(URL_IMG2, iv, options);    }}
// 1. 显示圆形图片.使用该效果,必须在布局中显式指定显示图片控件的宽高
   //展示图片的方法    public void show(View view) {       // 1. 显示圆形图片.使用该效果,必须显式指定图片的宽高        DisplayImageOptions options = new DisplayImageOptions.Builder()                .displayer(new CircleBitmapDisplayer())                .build();        ImageLoader.getInstance().displayImage(URL_IMG2, iv, options);    }

  //2.显示圆角图片.使用该效果,必须在布局中显式指定显示图片控件的宽高

//展示图片的方法    public void show(View view) {       // 2. 显示圆角图片.使用该效果,必须显式指定图片的宽高        DisplayImageOptions options = new DisplayImageOptions.Builder()                .displayer(new RoundedBitmapDisplayer(90))                .build();        ImageLoader.getInstance().displayImage(URL_IMG2, iv, options);    }

//3.显示圆角缩放图片.使用该效果,必须显式指定图片的宽高

public void show(View view) {
//3. 显示圆角缩放图片.使用该效果,必须显式指定图片的宽高
DisplayImageOptions options = new DisplayImageOptions.Builder()
.displayer(new RoundedVignetteBitmapDisplayer(30,60))
.build();
ImageLoader.getInstance().displayImage(URL_IMG2, iv, options);
}

 //4.显示渐显图片

public void show(View view) {
//4. 显示渐显图片
DisplayImageOptions options = new DisplayImageOptions.Builder()
.displayer(new FadeInBitmapDisplayer(3000))
.build();
ImageLoader.getInstance().displayImage(URL_IMG2, iv, options);
}

 

注释:配置参数

// ImageLoaderConfiguration 详细配置			File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), "imageloader/Cache"); // 自定义缓存文件夹			ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)			     .memoryCacheExtraOptions(480, 800) // 指定缓存到内存时图片的大小,默认是屏幕尺寸的长宽			     .diskCacheExtraOptions(480, 800, null) // 指定缓存到硬盘时图片的大小,并不建议使用			     .taskExecutor(new Executor()) // 自定义一个线程来加载和显示图片			     .taskExecutorForCachedImages(new Executor())// 自定义一个线程来缓存图片			     .threadPoolSize(3) // default, 指定线程池大小			     .threadPriority(Thread.NORM_PRIORITY - 2) // default ,指定线程优先级 			     .tasksProcessingOrder(QueueProcessingType.FIFO) // default , 指定加载显示图片的任务队列的类型			     .denyCacheImageMultipleSizesInMemory() // 禁止在内存中缓存同一张图片的多个尺寸类型			     .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) // 指定内存缓存的大小,默认值为1/8 应用的最大可用内存			     .memoryCacheSize(2 * 1024 * 1024) 			     .memoryCacheSizePercentage(13) // default			     .diskCache(new UnlimitedDiskCache(cacheDir)) // default , 指定硬盘缓存的地址			     .diskCacheSize(50 * 1024 * 1024) // 指定硬盘缓存的大小			     .diskCacheFileCount(100) // 指定硬盘缓存的文件个数			     .diskCacheFileNameGenerator(new HashCodeFileNameGenerator()) // default , 指定硬盘缓存时文件名的生成器			     .imageDownloader(new BaseImageDownloader(context)) // default , 指定图片下载器			     .imageDecoder(new BaseImageDecoder()) // default , 指定图片解码器			     .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // default , 指定图片显示的配置			     .writeDebugLogs() // 是否显示Log			     .build();

  

DisplayImageOptions 参数详解:			DisplayImageOptions options = new DisplayImageOptions.Builder()				.showImageOnLoading(R.drawable.ic_stub) // 图片正在加载时显示的图片资源ID				.showImageForEmptyUri(R.drawable.ic_empty) // URI为空时显示的图片资源ID				.showImageOnFail(R.drawable.ic_error) // 图片加载失败时显示的图片资源ID				.resetViewBeforeLoading(false)  // default 图片在下载前是否重置,复位				.delayBeforeLoading(1000) // 图片开始加载前的延时.默认是0				.cacheInMemory(false) // default , 是否缓存在内存中, 默认不缓存				.cacheOnDisk(false) // default , 是否缓存在硬盘 , 默认不缓存				.preProcessor(new BitmapProcessor) // 设置图片缓存在内存前的图片处理器				.postProcessor(new BitmapProcessor) // 设置图片在缓存到内存以后 , 显示在界面之前的图片处理器				.extraForDownloader(...) // 为图片下载设置辅助参数				.considerExifParams(false) // default , 设置是否考虑JPEG图片的EXIF参数信息,默认不考虑				.imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2) // default , 指定图片缩放的方式,ListView/GridView/Gallery推荐使用此默认值				.bitmapConfig(Bitmap.Config.ARGB_8888) // default , 指定图片的质量,默认是 ARGB_8888				.decodingOptions(...) // 指定图片的解码方式				.displayer(new SimpleBitmapDisplayer()) // default , 设置图片显示的方式,用于自定义				.handler(new Handler()) // default ,设置图片显示的方式和ImageLoadingListener的监听, 用于自定义				.build();

第三方开源框架图片展示UIL