【Android之SmartImageView图片控件】

来源:互联网 发布:银行大数据精准营销 编辑:程序博客网 时间:2024/05/29 03:40

源码地址是https://github.com/loopj/android-smart-image-view,没有sample,本文最后会提供一个sample。


smartimageview提供的主要功能有:

1. 继承ImageView控件,在原生ImageView控件上扩展了多个功能

2. 可以根据url地址加载网络上的一张图片

3. 可以根据uri加载本地手机里面联系人的一张图片

4. 加载图片是放在多线程中,与UI线程并发执行

5. 使用了内存和sd卡缓存图片技术,提高重复加载效率

6. 图片源采用面向接口编程,易于使用者扩展


类图如下:


SmartImageView核心方法:

public void setImage(final SmartImage image, final Integer fallbackResource, final Integer loadingResource, final SmartImageTask.OnCompleteListener completeListener) {        // Set a loading resource        if(loadingResource != null){            setImageResource(loadingResource);        }        // Cancel any existing tasks for this image view        if(currentTask != null) {            currentTask.cancel();            currentTask = null;        }        // Set up the new task        currentTask = new SmartImageTask(getContext(), image);        currentTask.setOnCompleteHandler(new SmartImageTask.OnCompleteHandler() {            @Override            public void onComplete(Bitmap bitmap) {                if(bitmap != null) {                    setImageBitmap(bitmap);                } else {                    // Set fallback resource                    if(fallbackResource != null) {                        setImageResource(fallbackResource);                    }                }                if(completeListener != null){                    completeListener.onComplete(bitmap);                }            }        });        // Run the task in a threadpool        threadPool.execute(currentTask);    }
在加载过程中可以设置默认图片、加载中图片,并且可以设置图片加载完成监听器,此方法会启动一个线程去加载图片,然后在onComplete方法中将图片显示到SmartImageView上去。


【Android之SmartImageView图片控件】下载


0 0
原创粉丝点击