Weex Android加载本地图片及网络图片

Weex Android加载本地图片及网络图片

前言

本篇本地图片加载目前仅适用于ImageLoader,如若是其他图片框架,则需要自己写适配规则。当然如果要适配Fresco,则需去研究一下WXImage的源代码,相信大家都有收获的。

一、网络图片的加载。

Weex Android加载本地图片及网络图片_第1张图片

在weex代码当中,我们需要将网络图片的地址赋值给src。
下面,我们重点来实现客户端的图片加载接口。目前Weex团队并没有提供已经实现好的接口供我们直接调用。

1、引入图片加载框架ImageLoader

这里写图片描述

2、初始化ImageLoader全局配置及Weex图片加载接口

Weex Android加载本地图片及网络图片_第2张图片

下面是初始化的ImageLoader及Weex图片加载接口的配置:

Weex Android加载本地图片及网络图片_第3张图片

从上面红线,我们即可看出共有两项配置。

3、实现Weex图片加载接口

Weex Android加载本地图片及网络图片_第4张图片

这里的注意点有两个:

一是实现IWXImgLoaderAdapter的接口,主要是setImage函数。
二是对于资源文件的获取处理,即对R.drawable.XXX的读取,主要思路是通过反射来获取得到资源ID。

Weex Android加载本地图片及网络图片_第5张图片

二、本地图片的加载

Android端的本地图片可分为三类:

1、资源文件:R.drawable.XXX、R.mipmap.XXX
2、Assets文件:即放在assets目录下的文件
3、存储文件:/sdcard/XXX

这三种文件,我们在这里的实现方式分为两种:

一种是针对资源文件,则不用ImageLoader框架直接将该资源ID设置到View控件上去。

另外两种文件,我们则利用ImageLoader的识别器来实现。这就需要我们写的we代码中的src有一定的规则。assets文件以assets://为开头,存储文件以file://为开头。下面是我写的例子。

Weex Android加载本地图片及网络图片_第6张图片

至于,大家想整合这两种类型,大家可以去看一下ImageLoader的源代码。

附件为示例

你可能感兴趣的:(weex)