Fresco实践总结,android开发规范

本文详细介绍了如何在Android开发中使用Fresco库,包括配置网络层为OkHttp,以及如何加载http/https远程图片、本地图片、res资源、ContentProvider和assets中的图片。同时,文章提供了关于SimpleDraweeView的使用技巧,如如何处理尺寸问题,以及图片加载的各种状态显示。
摘要由CSDN通过智能技术生成
  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  • 29

  • 30

  • 31

  • 32

  • 33

  • 34

  • 35

  • 36

  • 37

  • 38

高级初始化-配置网络层为OkHttp

Fresco默认使用HttpURLConnection作为网络层,当然也可以配置OkHttp作为它的网络层,配置OkHttp为它的网络层需要依赖下面的库:

compile "com.facebook.fresco:imagepipeline-okhttp3:0.12.0+"

  • 1

然后在Application中初始化的时候注意:

`/**

  • 初始话Fresco。

*/

public void initFresco() {

// 你的OkHttpClient根据你的设计来,建议是单例:

OkHttpClient okHttpClient = new OkHttpClient();

Fresco.initialize(this, OkHttpImagePipelineConfigFactory.newBuilder(App.this, okHttpClient)

.setMainDiskCacheConfig(

DiskCacheConfig.newBuilder(this)

.setBaseDirectoryPath(new File(“SD卡的路径…”))

.build()

)

.build()

);

}`

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

这里只需要注意原来的ImagePipelineConfig换成了OkHttpImagePipelineConfigFactory,并且需要一个OkHttpClient的对象。

加载网络图片、url、assets、res、本地File图片


先给出支持的URI格式列表(列表来自fresco-cn.org):

| Type | Scheme | Sample |

| — | — | — |

| http远程图片 | http://或者https:// | HttpURLConnection或者OkHttp |

| 本地文件 | file:// | FileInputStream |

| Content provider | content:// | ContentResolver |

| res目录下的资源 | res:// | Resources.openRawResource |

| asset目录下的资源 | asset:// | AssetManager |

| Uri中指定图片数据 | data:mime/type;base64, | 数据类型必须符合rfc2397规定 (仅支持 UTF-8) |

SimpleDraweeView

实际开发中,如果没有特殊需求,我们一般使用SimpleDraweeView来占位,传统的图片加载框架一般是使用ImageView,例如:

`<ImageView

…/>`

  • 1

  • 2

在使用Fresco时我们一般使用SimpleDraweeView,它也是继承ImageView的:

`<com.facebook.drawee.view.SimpleDraweeView

android:id="@+id/iv_head_background"

android:layout_width=“match_parent”

android:layout_height="@dimen/dp_200"/>`

  • 1

  • 2

  • 3

  • 4

把它当成我们平常使用的ImageView即可,不过我们要注意Fresco不支持wrap_content(具体原因看这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值