ImageLoader在github上的地址:https://github.com/nostra13/Android-Universal-Image-Loader

配置:

1.在app的buildgradle中添加以来:

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

例如:

dependencies {    implementation fileTree(include: ['*.jar'], dir: 'libs')    implementation 'com.android.support:appcompat-v7:26.1.0'    implementation 'com.android.support.constraint:constraint-layout:1.0.2'    implementation 'com.android.support:support-v4:26.1.0'    implementation 'com.android.support:recyclerview-v7:26.1.0'    testImplementation 'junit:junit:4.12'    androidTestImplementation 'com.android.support.test:runner:1.0.1'    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'    compile 'org.greenrobot:greendao:3.2.2' compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'}

2.重写application,并初始化配置

public class MyApplication extends Application {@Overridepublic void onCreate() {super.onCreate();initImageLoader();}public void initImageLoader(){ImageLoaderConfiguration.Builder config = new ImageLoaderConfiguration.Builder(getApplicationContext());config.threadPriority(Thread.NORM_PRIORITY - 2);config.denyCacheImageMultipleSizesInMemory();config.diskCacheFileNameGenerator(new Md5FileNameGenerator());config.diskCacheSize(50*1024*1024);config.tasksProcessingOrder(QueueProcessingType.LIFO);config.writeDebugLogs();ImageLoader.getInstance().init(config.build());}
}

3.配置AndroidManifest

将application标签的name熟悉设置为.MyApplication; 添加权限

<application    android:name=".MyApplication"    android:allowBackup="true"    android:icon="@mipmap/ic_launcher"    android:label="@string/app_name"    android:roundIcon="@mipmap/ic_launcher_round"    android:supportsRtl="true"    android:theme="@style/AppTheme">
</application>
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

4.应用实例:

public class MyImageListActivity extends Activity {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.fr_image_list);ListView listView = findViewById(R.id.listview);listView.setAdapter(new ImageAdapter());listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {Log.i("test","click "+i);}});}@Overrideprotected void onDestroy() {//回收缓存在内存中的图片
        ImageLoader.getInstance().clearMemoryCache();super.onDestroy();}private class ImageAdapter extends BaseAdapter{private String[] IMAGES_URI = new String[]{"http://mowin.org/wp-content/uploads/2017/07/arborists-forestry.jpg","http://s1.1zoom.me/big0/506/Sky_Grasslands_Rainbow_502473.jpg",};// 创建DisplayImageOptions对象private DisplayImageOptions options;public ImageAdapter() {options = new DisplayImageOptions.Builder().showImageOnLoading(R.drawable.dog)  // 下载期间显示的图片.showImageForEmptyUri(R.drawable.dog)//Uri为空或是错误的时候显示的图片.showImageOnFail(R.drawable.ic_launcher_background)//发生错误显示的图片.cacheInMemory(true)//载的图片是否缓存在内存中.cacheOnDisk(true)//载的图片是否缓存在sdcard中.considerExifParams(true).displayer(new CircleBitmapDisplayer(Color.WHITE,5))//图片
                    .build();}@Overridepublic int getCount() {return IMAGES_URI.length;}@Overridepublic Object getItem(int i) {return IMAGES_URI[i];}@Overridepublic long getItemId(int i) {return i;}@Overridepublic View getView(int i, View view, ViewGroup viewGroup) {ViewHolder holder;if(view == null){holder = new ViewHolder();view = LayoutInflater.from(MyImageListActivity.this).inflate(R.layout.item_list_image,null);holder.imageView = (ImageView)view.findViewById(R.id.item_image);holder.textView = (TextView)view.findViewById(R.id.item_name);view.setTag(holder);}else{holder = (ViewHolder)view.getTag();}holder.textView.setText("Item " + (i + 1));//
            ImageLoader.getInstance().displayImage(IMAGES_URI[i],holder.imageView,options);return view;}}static  class ViewHolder{ImageView imageView;TextView textView;}
}

可以使用的URI:

"http://site.com/image.png" // from Web
"file:///mnt/sdcard/image.png" // from SD card "file:///mnt/sdcard/video.mp4" // from SD card (video thumbnail) "content://media/external/images/media/13" // from content provider "content://media/external/video/media/13" // from content provider (video thumbnail) "assets://image.png" // from assets "drawable://" + R.drawable.img // from drawables (non-9patch images)
设置图片的显示方式
displayer(BitmapDisplayer displayer) 
  SimpleBitmapDisplayer() //默认 正常显示一张图片

  CircleBitmapDisplayer(Color.WHITE,5)//圆形图片
  RoundedBitmapDisplayer(20) //圆角图片,弧度20. 不推荐用
  FadeInBitmapDisplayer(100)//加载图片后渐入的时间  FakeBitmapDisplayer()图片压缩质量参数bitmapConfig(Bitmap.Config.RGB_565)在android中的大图片一般都要经过压缩才能显示,不然容易发生oom,影响一个图片占用空间的有尺寸大小 色彩细节。
public static final Bitmap.Config ALPHA_8
public static final Bitmap.Config ARGB_4444
public static final Bitmap.Config ARGB_8888
public static final Bitmap.Config RGB_565  

ARGB指的是一种色彩模式,A代表Alpha,R表示red,G表示green,B表示blue。所有的可见色都是由红绿蓝组成的,所以红绿蓝又称为三原色

ALPHA_8就是Alpha由8位组成--代表8位Alpha位图

ARGB_4444就是由4个4位组成即16位--代表16位ARGB位图

ARGB_8888就是由4个8位组成即32位--代表32位ARGB位图

RGB_565就是R为5位,G为6位,B为5位共16位--代表16位RGB位图

位图位数越高代表其可以存储的颜色信息越多,当然图像也就越逼真。

bitmapConfig(Bitmap.Config.RGB_565) //使用RGB_565会比使用ARGB_8888少消耗2倍的内存

imageScaleType(ImageScaleType.IN_SAMPLE_INT) 或 imageScaleType(ImageScaleType.EXACTLY)

避免使用new RoundedBitmapDisplayer(int) //会创建新的ARGB_8888格式的Bitmap对象;



转载于:https://www.cnblogs.com/yuan1225/p/8426900.html

ImageLoader相关推荐

  1. Android开源框架ImageLoader的完美例子

    要使用ImageLoader就要到这里下载jar包: https://github.com/nostra13/Android-Universal-Image-Loader 然后导入项目中去就行了 项目 ...

  2. 开源框架 ImageLoader +ListView+GridView+RecyclerView 浅解

    下载地址 链接:https://pan.baidu.com/s/1ebz99pcuvHg2bODgeOtSbg 提取码:ia39 一.导入jar包或者添加依赖 jar包地址 导入jar包:将下载的ja ...

  3. Android ImageLoader(Android-Universal-Image-Loader)【1】概述及使用简单介绍

     Android ImageLoader(Android-Universal-Image-Loader)[1]概述及使用简单介绍 一,前言:为什么要引入Android-Universal-Imag ...

  4. Android -- ImageLoader本地缓存

    传送门 <Android -- ImageLoader简析>  http://www.cnblogs.com/yydcdut/p/4008097.html 本地缓存 在缓存文件时对文件名称 ...

  5. ImageLoader displayers 之CircleBitmapDisplayer

    ImageLoader这个图片加载器是我经常使用额一个图片加载器(https://github.com/nostra13/Android-Universal-Image-Loader) 这个图片加载器 ...

  6. Ionic3 UI组件之 ImageLoader

    ImageLoader:通过后台线程加载图片(异步)并缓存.类似于Glide或者Picasso. 组件特性: 后台线程下载图片,下载速度更快,不使用webview的资源: 缓存图像.图像将在您下次显示 ...

  7. android使用ImageLoader实现图片缓存(安卓开发必备)

    相信大家在学习以及实际开发中基本都会与网络数据打交道,而这其中一个非常影响用户体验的就是图片的缓存了,若是没有弄好图片缓存,用户体验会大大下降,总会出现卡顿情况,而这个问题尤其容易出现在ListVie ...

  8. imageloader 的 java.security.cert.CertPathValidatorException

    最近使用imageloader 发现ssl问题 (java.security.cert.CertPathValidatorException) 网上找了个方法,亲测通过,如下: universalim ...

  9. android 解决listview.notifyDataSetChanged刷新时Imageloader加载图片闪烁问题

    今天,简单讲讲android里再listview调用notifyDataSetChanged刷新界面时,Imageloader加载图片会闪烁的问题. 最近,发现app里的listview图片会出现闪烁 ...

  10. ImageLoader must be init with configuration before using 错误解决方法

    最近开发过程中用到了开源项目Android-Universal-Image-Loader. 在程序开发之前在CSDN的文章里看到的有Android-Universal-Image-Loader这么个好 ...

最新文章

  1. fastjson又被发现漏洞,这次危害可导致服务瘫痪!
  2. 二叉树的层序遍历 II
  3. PHP中不用第三个变量交换两个变量的值
  4. D2 AJAX 封装策略
  5. CEO 赠书 |《跨越鸿沟》如何将梦想变为现实?
  6. 十九、Seaborn数据可视化
  7. 【Node.js】http-server 实现目录浏览服务
  8. ios添加设备真机测试,以及Undefined symbols for architecture x86_64:''错误
  9. [jQuery] ajax跨域处理方式
  10. 【linux系统编程】基础开发工具:yum
  11. Win10中的IIS10安装php manager和IIS URL Rewrite
  12. 六、瞰景Smart3D三维重建
  13. 联想微型计算机怎么恢复系统,联想一体机系统还原的方法 联想一体机如何还原系统...
  14. 区块链技术应用场景之政务链
  15. 【无机纳米材料科研制图——Visio 0309】使用任意多边形工具描边出小鼠简图
  16. 总说业务,到底业务常用的指标有哪些
  17. vuex入门到实战——实现一个todoList待办清单【学习记录】
  18. android自定义sidebar,Sidebar - WiFi、GPS、手电筒们都到这里来! - Android 应用 - 【最美应用】...
  19. 星光不问赶路人,时光不负有心人
  20. 阿里云 Serverless App Engine(SAE)助力升学在线从容应对流量高峰

热门文章

  1. ubuntu关闭自动更新、打开 ubuntu 的 apport 崩溃检测报告功能
  2. Undefined reference to ...
  3. 用U盘打开XP登入码
  4. 将图像平移到画布中心python_python-如何用猕猴桃中的图像填充画布?
  5. IPv4的路由选择计算步骤
  6. 符号级别(二)--实际应用
  7. 移动端前端UI框架推荐
  8. Web服务器之Http压缩(GZip)
  9. wamp修改默认80端口
  10. C#使用SharpZipLib实现zip压缩