强大的图片加载框架——Fresco
Fresco是Facebook发布的一款开源框架,号称是目前最强的Android图片加载库,在内存方面的表现极为优秀,既然有如此信心,
对于Fresco的一些介绍,就不多说了,如果你感兴趣肯定会到网上找一些相关的资料
官网查看:http://frescolib.org/
github官网:https://github.com/facebook/fresco
1)添加依赖库。
目前git上的版本是0.14.1
|
引入后andriod studio会自动加载远程库,如果没有开vpn的话,可能时间稍微会长些。
对于Eclipse的介绍的话这里就不多说了,比较麻烦,而且你会抛弃超级好用的亲儿子studio吗?
2)然后如果你是多次用到Fresco,建议在 Application 初始化,如果只是写着玩,就在应用调用 setContentView() 之前,进行初始化:
|
3)因为我这里加载的是一张网络图片,所以要获得网络权限
<uses-permission android:name="android.permission.INTERNET"/>
4)用人家的框架就要按照人家的要求来是不,所以控件名字,命名空间都要听人家的
Fresco不同于其它几个图片加载库,它是基于自定义控件的,要使用控件SimpleDraweeView来显示图片,
注意,控件不支持宽高同时设置为wrap_content,默认强制设置宽高,否则不显示图片
|
5)在activity中加载图片显示,Fresco 不支持相对路径的URI. 所有的URI都必须是绝对路径,并且带上该URI的scheme。
|
运行效果如下:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIyVGduV2QvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2LcZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TOyIDMyIDN0EjMwETM2EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
- drawee支持如下属性:
|
上面的ImageScaleType有下面一些缩放类型:
类型 | 描述 |
center | 居中,无缩放 |
centerCrop | 保持宽高比缩小或放大,是的两边都大于或等于边界,且宽和高契合显示边界,居中显示 |
focusCrop | 同centerCrop,但居中点不是中点,而是指定的某个点 |
centerInside | 缩放图片使两边都在显示边界内,居中显示。和fitCenter不同,不会对图片进行放大。如果尺寸大于显示边界,则保持宽高比例缩小图片。 |
fitCenter | 保持宽高比,缩小或者放大,使得图片完全显示在显示边界内,且宽或高契合显示边界,居中显示。 |
fitStart | 同上,但不居中,和显示边界左上对齐。 |
fitEnd | 同fitCenter,但不居中,和显示边界右下对齐。 |
fitXY | 不保存宽高比,填充满显示边界。 |
none | 如果要使用tile mode显示,则需要设置为none |
多图请求
有时候需要加载很多图片,这个时候如果网络情况不是很好的情况下,一直显示占位图,体验也不是很好,我们可以先显示一个低分辨率的图片,等到大图加载完成之后,在显示真正的图片。
|
当然如果你想监听加载的过程,就加一个ControllerListen
|