第三方开源框架图片展示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="@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();
时间: 2024-10-29 19:10:39

第三方开源框架图片展示UIL的相关文章

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报开源框架 图像: 1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.      下载:https://github.com/mwaterfall/MWPhotoBrowser目前比较活跃的社区仍旧是Github,

iOS开发-常用第三方开源框架介绍

iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下载:https://github.com/mwaterfall/MWPhotoBrowser 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github社区太过主流,这里主要介绍一下G

使用自定义的item、Adapter和AsyncTask、第三方开源框架PullToRefresh联合使用实现自定义的下拉列表(从网络加载图片显示在item中的ImageView)

AsyncTask使用方法详情:http://www.cnblogs.com/zzw1994/p/4959949.html 下拉开源框架PullToRefresh使用方法和下载详情:http://www.cnblogs.com/zzw1994/p/4992194.html 具体实现的代码如下: item.xml: 1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:and

iOS: 知名APP用到的第三方开源框架

知名应用程序的设计和技术一直都是开发者需要学习的,同样这些应用所使用的开源框架也是不可忽视的一部分.此前<iOS第三方开源库的吐槽和备忘>中作者ibireme列举了国内多款知名应用所使用的开源框架,并对其中一些框架进行了分析,同样国外开发者@iOSCowboy也在博客中给我们列出了国外多款知名应用使用的开源框架.另外txx's blog中详细介绍了Facebook Paper使用的第三方库. Instagram AFNetworking: 适用于iOS和OS X的网络框架. Appirate

Android第三方开源框架之SlidingMenu详解 [转载]

SlidingMenu简介:       SlidingMenu的是一种比较新的设置界面或配置界面效果,在主界面左滑或者右滑出现设置界面,能方便的进行各种操作.目前有大量的应用都在使用这一效果.如Evernote.Google+.Foursquare等,国内的豌豆夹,人人,360手机助手等都使用SlidingMenu的界面方案. 开源框架下载地址,集成了另一个开源项目ActionBarSherlock:点击下载.              注意: SlidingMenu依赖于另一个开源项目Act

(转)iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下载:https://github.com/mwaterfall/MWPhotoBrowser 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github社区太过主流,这里主要介绍一下Github里面流行的iOS库. 首先

iOS开发-常用第三方开源框架

特别说明:有些链接是没有用的,如需下载请在github中搜索即可. 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下载:https://github.com/mwaterfall/MWPhotoBrowser 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github

iOS开发常用第三方开源框架 持续更新中...

键盘管理TPKeyboardAvoidingIQKeyboardManager 弹窗HUDMBProgressHUDSVProgressHUDUIView+Toast UIView显示提示CategoryToast-Swift Tosat-swift版本SnailPopupController 快速弹出自定义视图,支持自定义蒙版样式/过渡效果/手势拖动等 上下拉刷新MJRefreshSVPullToRefresh JSON解析MJExtension 网络请求AFNetworkingAlamofi

基于开源框架Glide加载Gif资源图到Android ImageView中

<基于第三方开源框架Android Glide加载Gif资源图片到Android ImageView中> 通常Android的ImageView不能加载Gif图片,如不做任何处理,那么加载到ImageView中的Gif只显示第一帧.网上给出很多解决方案,也有不少开源框架定制专属的Gif View用于加载Gif图,这些解决方案基本上大多数是借助Android的Movie,把Gif图片资源作为流,解析成Android Movie显示,这些定制的基本思想就是先检测该图片资源是否是Gif图,若是,则按