ImageView异步加载图片 ImageLoaderSample

码农软件 · 软件分类 · Android UI 组件 · 2019-04-26 22:57:18

软件介绍

这个可以实现ImageView异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画。

解决了:

1. listview加载oom问题

2. listview加载时卡顿的现象

3. listview加载时item中图片重复错位等情况

可以配置:

1. 设置加载图片的最大尺寸

2. 设置默认图片的显示

3. 设置图片位图模式

4. 设置内存缓存的最大值。

5. 文件缓存保存的目录

  这个框架基本的代码是很久以前不知道哪里弄的,零零碎碎的,现在已经优化了很多,所以现在上传到github上共享。

  讲讲使用方式吧:

 

首先使用前下载源码或者jar包(见github:https://github.com/wangjiegulu/ImageLoaderSample

然后进行图片加载器(ImageLoader)的配置和初始化,推荐的方法如下:

新建MyApplication类,继承Application,在onCreate中增加如下代码:

/**
 * Created with IntelliJ IDEA.
 * Author: wangjie  email:tiantian.china.2@gmail.com
 * Date: 14-2-27
 * Time: 上午11:25
 */
public class MyApplication extends Application{
    @Override
    public void onCreate() {
        super.onCreate();
        ImageLoader.init(getApplicationContext(),
                new CacheConfig()
                    .setDefRequiredSize(600) // 设置默认的加载图片尺寸(表示宽高任一不超过该值,默认是70px)
                    .setDefaultResId(R.drawable.ic_launcher) // 设置显示的默认图片(默认是0,即空白图片)
                    .setBitmapConfig(Bitmap.Config.ARGB_8888) // 设置图片位图模式(默认是Bitmap.CacheConfig.ARGB_8888)
                    .setMemoryCachelimit(Runtime.getRuntime().maxMemory() / 3) // 设置图片内存缓存大小(默认是Runtime.getRuntime().maxMemory() / 4)
//                  .setFileCachePath(Environment.getExternalStorageDirectory().toString() + "/mycache") // 设置文件缓存保存目录
        );

    }


    ……
}

然后再AndroidManifest.xml中添加:

......

到此,配置已经全部完成:

接下来,使用ImageLoader来加载图片:

holder.progress.setText("0%");
    holder.progress.setVisibility(View.VISIBLE);
    final ViewHolder vhr = holder;
    ImageLoader.getInstances().displayImage(list.get(position), holder.image, new ImageLoader.OnImageLoaderListener() {
        @Override
        public void onProgressImageLoader(ImageView imageView, int currentSize, int totalSize) {
            vhr.progress.setText(currentSize * 100 / totalSize + "%");
        }

        @Override
        public void onFinishedImageLoader(ImageView imageView, Bitmap bitmap) {
            vhr.progress.setVisibility(View.GONE);
        }
    });
    或者:
    ImageLoader.getInstances().displayImage(url, imageIv);
    或者
    ImageLoader.getInstances().displayImage(url, imageIv, 100);

备注:
例子中,用到了一部分注解(与ImageLoader功能无关,但是可以简化代码的编写) 可以点下面连接进入:
github:https://github.com/wangjiegulu/androidInject
博客:
http://www.cnblogs.com/tiantianbyconan/p/3459139.html
http://www.cnblogs.com/tiantianbyconan/p/3540427.html

本文地址:https://codercto.com/soft/d/4464.html

Spring实战(第4版)

Spring实战(第4版)

Craig Walls 沃尔斯 / 张卫滨 / 人民邮电出版社 / 2016-4-1 / CNY 89.00

《Spring实战(第4版)》是经典的、畅销的Spring学习和实践指南。 第4版针对Spring 4进行了全面更新。全书分为四部分。第1部分介绍Spring框架的核心知识。第二部分在此基础上介绍了如何使用Spring构建Web应用程序。第三部分告别前端,介绍了如何在应用程序的后端使用Spring。第四部分描述了如何使用Spring与其他的应用和服务进行集成。 《Spring实战(第4......一起来看看 《Spring实战(第4版)》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具