SmartImageView的设计初衷是来取代Android自带的ImgageView组件,另外它还提供了一些附加功能,如:

  • 支持通过URL来加载图片;
  • 支持从电话簿中加载图片;
  • 异步加载图片;
  • 图片被缓存在内存,以便下次快速加载显示;
  • SmartImageView类可以被很容易扩展成对其它资源的调用;

作者主页:http://loopj.com/android-smart-image-view/

下载提供的jar包,该项目是开源的,也可以去github下载源码使用
https://github.com/loopj/android-smart-image-view
在做一些需要从网上获取图片的APP时,就难免要做很多处理。
这个项目就是针对这些做了很多处理。
XML添加一个控件
<com.loopj.android.image.SmartImageView android:id="@+id/my_image" />

获取引用
SmartImageView myImage = (SmartImageView) this.findViewById(R.id.my_image);

获取网络图片,这个过程本身就是异步。不必再进行处理,也不必担心线程阻塞
网络获取到的图片都进行了缓存的处理。会在程序的cache目录下建/web_image_cache/,图片存在这里
上次使用的时候,如果缓存图片已经存在,则不再从网络获取图片
myImage.setImageUrl("http://www.awesomeimages.com/myawesomeimage.jpg");

有一些功能,作者主页并没有说明,但是查看源码可以看到


先看.setImageUrl都有什么方法

1、最普通的一个,直接设置图片地址
    // Helpers to set image by URL
    public void setImageUrl(String url) {
        setImage(new WebImage(url));
    }
2、有一个接口,完成下载的时候调用
    public void setImageUrl(String url, SmartImageTask.OnCompleteListener completeListener) {
        setImage(new WebImage(url), completeListener);
    }
3、从字面意思可以看出,是一个备用的资源。如果从网络获取图片失败,则使用备用资源
    public void setImageUrl(String url, final Integer fallbackResource) {
        setImage(new WebImage(url), fallbackResource);
    }
4、类似上面
    public void setImageUrl(String url, final Integer fallbackResource, SmartImageTask.OnCompleteListener completeListener) {
        setImage(new WebImage(url), fallbackResource, completeListener);
    }
5、多了一个loadingResource,就是正在下载的时候展示的图片
    public void setImageUrl(String url, final Integer fallbackResource, final Integer loadingResource) {
        setImage(new WebImage(url), fallbackResource, loadingResource);
    }
6、类似上面
    public void setImageUrl(String url, final Integer fallbackResource, final Integer loadingResource, SmartImageTask.OnCompleteListener completeListener) {
        setImage(new WebImage(url), fallbackResource, loadingResource, completeListener);
    }
SmartImageView确实很方便,能解决大部分问题。有不符合自己要求的地方,还可以根据源码去修改。

Android Smart Image View相关推荐

  1. 用Android Smart Image View做的一个网络图片浏览的Demo

    还是两种方式都写出来,也看看有多smart 1.传统方式从网络上获取图片并显示 首先新建Android Project顺便也在Manifest把网络权限加了 activity_main.xml布局如下 ...

  2. Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件...

    UI的描述 对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的.View是绘制在屏幕上能与用户进行交互的一个对象.而对于ViewGroup来说,则是一个用于存放 ...

  3. android中实现view的更新有两组方法

    android中实现view的更新有两组方法,一组是invalidate,另一组是postInvalidate,其中前者是在UI线程自身中使用,而后者在非UI线程中使用.     Android提供了 ...

  4. Android刷新机制-View绘制原理

    Android刷新机制-View绘制原理 Android刷新机制-SurfaceFlinger原理 Android刷新机制-Choreographer原理 一.概述 本文将从startActivity ...

  5. Caused by: java.lang.ClassNotFoundException: Didn't find class android.support.v4.view.ViewPager

    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.view.ViewPag ...

  6. 精通android布局,Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件...

    标题图 UI的描述 对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的.View是绘制在屏幕上能与用户进行交互的一个对象.而对于ViewGroup来说,则是一个 ...

  7. android view取坐标点,Android 获取子 View 的位置及坐标的方式

    一.View 1.1.View 概述 视图 (View) 是一个容器,专门负责布局.表现为显示在屏幕上的各种视图,如 TextView.LinearLayout 等. 1.2.View 分类 View ...

  8. Android 自己定义View须要重写ondraw()等方法

    Android  自己定义View须要重写ondraw()等方法.这篇博客给大家说说自己定义View的写法,须要我们继承View,然后重写一些 方法,方法多多,看你须要什么方法 首先写一个自己定义的V ...

  9. Android开发之View双指缩放ViewGroup双指缩放视频双指缩放图片双指缩放

    老套路先上图 核心代码使用view的缩放API即可 setScaleX(scale); setScaleY(scale); 在看下自定义可缩放的view package cn.xiayiye5.xia ...

最新文章

  1. [Codeforces]Codeforces Round #460 (Div. 2)
  2. 01)自学JavaScript
  3. “.公司”域名注册总量TOP15:新网问鼎 万网居亚
  4. SQL SERVER 查看数据库表的字段类型,是否允许为NULL,默认值,主键等
  5. Android Studio3.0,在原有项目中进行ndk配置
  6. MATLAB(R2021a)软件下载和安装教程
  7. conda和pip卸载包的注意事项
  8. Python程序题练习
  9. Tensorflow-Gpu安装 基于gtx1060
  10. HCI实验spss数据分析
  11. linux的gz文件怎么解压缩,linux gz 解压缩
  12. 如何利用手机云控系统来体现
  13. 用html+css做一个网页设计
  14. 回旋图形c语言编程,回旋形构成形式解析与应用研究.docx
  15. 2020上海ICPC现场赛 C Sum of Log
  16. 如何选择语音短信通知?语音短信通知接入教程
  17. Effective C++ 条款14
  18. 阶段性小结(一)---R语言回归案例实战算法比较
  19. 计算机音乐数字乐谱fade,superpads数字谱faded音乐包
  20. 安卓记账APP的开发思路详解

热门文章

  1. python抢mac微信红包群_要抢红包?Python来帮你~
  2. 手机当服务器(Termux)快速入门
  3. 大数据技术之Hive 第4章 DDL数据定义语言
  4. OpenFlow协议初探——OpenFLow中的流和流表
  5. 不一定是黑客,也可以是守护神《运用Python成为顶级黑客》
  6. 优化理论12---- Rosen的梯度投影法 、投影矩阵
  7. outlook登录QQ邮箱
  8. 哪一个国家耗巨资请熊猫去的_熊猫4.0:一个月过去了,复苏迹象
  9. Unity3D_Util_Editor_显示RectTransform的世界坐标和相对坐标
  10. 手欠,给DELL R720加硬盘