android 开发 您所在的位置:网站首页 android网络图片的加载 android 开发

android 开发

2023-10-25 00:23| 来源: 网络整理| 查看: 265

概述 Fresco 是 facebook 的开源类库,它支持更有效的加载网络图片以及资源图片。它自带三级缓存功能,让图片显示更高效。

介绍

Fresco 是一个强大的图片加载组件。 Fresco 中设计有一个叫做 image pipeline 的模块。它负责从网络,从本地文件系统,本地资源加载图片。为了最大限度节省空间和CPU时间,它含有3级缓存设计(2级内存,1级文件)。 Fresco 中设计有一个叫做 Drawees 模块,方便地显示loading图,当图片不再显示在屏幕上时,及时地释放内存和空间占用。 Fresco 支持 Android2.3(API level 9) 及其以上系统。 简单使用

简单来说,只需要三步。

1. 添加依赖 2. 初始化Fresco 3. 编写布局 4. 指定Uri 1.添加依赖

在你的 模块级别 的gradle中写下:

compile 'com.facebook.fresco:fresco:0.10.0' 2.初始化Fresco

在你的自定义application中,或者在Activity.onCreate方法内,setContentView之前调用:

Fresco.initialize(this); 3.编写布局

声明命名空间 xmlns:fresco=”schemas.android.com/apk/res-aut…

写一个SimpleDraweeView

4.指定Uri final String str2 = "http://h.hiphotos.baidu.com/zhidao/pic/item/279759ee3d6d55fb65c51e786c224f4a20a4dd69.jpg"; Uri uri = Uri.parse(str2); my_image_view0.setImageURI(uriERR); Fresco的一些概念 DraweeView 继承于 View, 负责图片的显示。一般情况下,使用SimpleDraweeView 即可 ImageRequest ImageRequest存储着Image Pipeline处理被请求图片所需要的有用信息(Uri、是否渐进式图片、是否返回缩略图、缩放、是否自动旋转等)。 Fresco的对 布局宽高的要求 你必须声明 android:layout_width 和 android:layout_height。 如果没有在XML中声明这两个属性,将无法正确加载图像。

Drawees 不支持 wrap_content 属性。

这么做是有理由的:

所下载的图像可能和占位图尺寸不一致,如果设置出错图或者重试图的话,这些图的尺寸也可能和所下载的图尺寸不一致。 如果大小不一致,假设使用的是 wrap_content,图像下载完之后,View将会重新layout,改变大小和位置。这将会导致界面跳跃。

考虑到缓存的图片会根据你的尺寸进行缩略图,手机的屏幕会在旋转而导致imageview大小改变等,这些都会导致图片无法正常显示。

固定宽高比

只有希望显示固定的宽高比时,可以使用wrap_content。 如果希望图片以特定的宽高比例显示,例如 4:3,可以在XML中指定:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有