最近使用facebook的开源图片加载框架Fresco 。。
在加载本地资源时遇到了些问题。
根据文档,所有的url都必须是绝对路径,文档给树了资源的scheme:
类型 | Scheme | 示例 |
---|---|---|
远程图片 | http://, https:// | HttpURLConnection |
本地文件 | file:// | FileInputStream |
Content provider | content:// | ContentResolver |
asset目录下的资源 | asset:// | AssetManager |
res目录下的资源 | res:// | Resources.openRawResource |
里面只说明了加载图片的scheme。并没有给出示例。
让我高了半天没成功。
最后在网上找到了资料,终于成功。
以 res/raw 文件夹为例
在res/raw 文件下放一个gif文件:web_loading.gif
Fresco适用的绝对url应该是这样的:
"res://com.xxx.yy/"+R.raw.web_loading
其中 R.raw.web_loading 是id,不是字符串。com.xxx.yy 是你的项目包名
因为res所有文件都会生成id。 所以使用 Fresco给出的 scheme 加上包名,再加上资源id。就可以定位到 raw下的文件
//====================== 2015-05-19 更新 =======================
最近做项目有出现了以个问题.
当我加载 asset 目录下的 资源时,又出现了图片无法加载的问题.
错误日志: E/JHEAD﹕ can't open '/loading2.gif'
在网络上看到了一个解决办法 :
将路径写成 : asset:///loading2.gif
ok ..解决..