SmartImageView的设计初衷是来取代Android自带的ImgageView组件,但它的功能远不只imageview这么简单,它还提供了一些ImageView远远没有却常常在android应用中经常用到的功能,如:
(1)支持通过URL来加载图片;
(2)支持从电话簿中加载图片;
(3)异步加载图片;
(4)图片被缓存在内存,以便下次快速加载显示;
(5)SmartImageView类可以被很容易扩展成对其它资源的调用使用;
在做一些需要从网上获取图片的APP时,就难免要做很多处理。
这个项目就是针对这些做了很多处理。
Github项目地址:https://github.com/loopj/android-smart-image-view
作者地址:http://loopj.com/android-smart-image-view/
XML添加一个控件
<com.loopj.android.image.SmartImageView
android:id="@+id/smart_image"
android:layout_above="@id/button_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
/>
获取引用
mImageView = (SmartImageView)findViewById(R.id.smart_image);
获取网络图片,这个过程本身就是异步。不必再进行处理,也不必担心线程阻塞
网络获取到的图片都进行了缓存的处理。会在程序的cache目录下建/web_image_cache/,图片存在这里,如下图所示:
下次使用的时候,如果缓存图片已经存在,则不再从网络获取图片
mImageView.setImageUrl("http://d.hiphotos.baidu.com/image/pic/item/838ba61ea8d3fd1f5a4c0234334e251f95ca5f72.jpg");
有一些功能,作者主页并没有说明,但是查看源码可以看到
先看.setImageUrl都有什么方法
1、最普通的一个,直接设置图片地址
// Helpers to set image by URL
public void setImageUrl(String url) {