图片加载框架之fresco
FaceBook推出的图片处理框架
主页:
https://github.com/facebook/fresco
中文文档:http://fresco-cn.org/docs/index.html
功能
在XML中使用
Drawees
在Java代码中使用 Drawees
Drawee的各种效果配置
进度条
缩放
圆角/圆圈
渐进式JPEG图
动画图(gif)
多图请求及图片复用
监听下载事件
缩放和旋转
使用步骤
1.添加依赖: compile 'com.facebook.fresco:fresco:0.9.0+'
2.添加权限
<uses-permission
android:name="android.permission.INTERNET"/>
3.在Application初始化或在Activity 的**setContentView()方法之前**,进行初始化,开发中一般在Application中初始化
,
Fresco.initialize(this);
4.在布局文件中添加图片控件.宽高必须显示指定,否则图片无法显示.需要添加自定义的命名空间
xmlns:app=http://schemas.android.com/apk/res-auto <com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/my_image_view"
android:layout_width="200dp"
android:layout_height="200dp"
app:placeholderImage="@mipmap/ic_launcher" /> //设置默认加载的图片
5.在Java代码中指定图片的路径.显示图片.SimpleDraweeView接收的路径参数为URI,所以需要一次转换.
SimpleDraweeView view = (SimpleDraweeView) findViewById(R.id.my_image_view);
view.setImageURI(Uri.parse(file:///sdcard/Download/mm.jpg));
6.XML方式配置参数.除图片地址以外,其他所有显示选项都可以在布局文件中指定
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/my_image_view"
android:layout_width="20dp"
android:layout_height="20dp"
fresco:actualImageScaleType="focusCrop"// 图片的缩放方式.
fresco:backgroundImage="@color/blue" //背景图.不支持缩放.XML仅能指定一张背景图.如果使用Java代码指定的话,可以指定多个背景,显示方式类似FrameLayout,多个背景图按照顺序一级一级层叠上去.
fresco:fadeDuration="300" // 渐显图片的时间
fresco:failureImage="@drawable/error" // 图片加载失败显示的图片
fresco:failureImageScaleType="centerInside" //// 图片加载失败显示的图片的缩放类型
fresco:overlayImage="@drawable/watermark" // 层叠图,最后叠加在图片之上.不支持缩放.XML仅能指定一张.如果使用Java代码指定的话,可以指定多个,显示方式类似FrameLayout,多个图按照顺序一级一级层叠上去.
fresco:placeholderImage="@color/wait_color" // 图片加载成功之前显示的占位图
fresco:placeholderImageScaleType="fitCenter" // 图片加载成功之前显示的占位图的缩放类型
fresco:pressedStateOverlayImage="@color/red" // 设置按压状态下的层叠图.不支持缩放.
fresco:progressBarAutoRotateInterval="1000" // 进度条图片旋转显示时长
fresco:progressBarImage="@drawable/progress_bar" // 进度条图片
fresco:progressBarImageScaleType="centerInside" //进度条图片的缩放类型
fresco:retryImage="@drawable/retrying" // 当图片加载失败的时候,显示该图片提示用户点击重新加载图片
fresco:retryImageScaleType="centerCrop" // 提示图片的缩放类型
fresco:roundAsCircle="false" // 显示圆形图片
fresco:roundBottomLeft="false" // roundedCornerRadius属性设置后,四个角都会有圆角,如果左下角不需要设置为false.
fresco:roundBottomRight="true" // roundedCornerRadius属性设置后,四个角都会有圆角,如果右下角不需要设置为false.
fresco:roundTopLeft="true" // roundedCornerRadius属性设置后,四个角都会有圆角,如果左上角不需要设置为false.
fresco:roundTopRight="false" // roundedCornerRadius属性设置后,四个角都会有圆角,如果右上角不需要设置为false.
fresco:roundWithOverlayColor="@color/corner_color" // 设置图片圆角后空出区域的颜色.如示例图中的红色部分
fresco:roundedCornerRadius="1dp" // 设置图片圆角角度,设置该属性后四个角都会生效
fresco:roundingBorderColor="@color/border_color" // 设置圆角后,边框的颜色.
resco:roundingBorderWidth="2dp" /> // 设置圆角后,外边框的宽高
7.Java代码配置参数.
设置默认的图片
GenericDraweeHierarchy hierarchy = GenericDraweeHierarchyBuilder
.newInstance(getResources())
.setRetryImage(getResources().getDrawable(R.mipmap.ic_launcher))
.build(); imageivew.setHierarchy(hierarchy);
8.显示GIF图片.Fresco 支持 GIF 和 WebP 格式的动画图片.如果你希望图片下载完之后自动播放,同时,当View从屏幕移除时,停止播放,只需要在 image request 中简单设置,示例代码:
SimpleDraweeView imageView = (SimpleDraweeView) findViewById(R.id.iv_gif);
//设置显示gif图的控制器
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(Uri.parse("http://192.168.13.77:8080/nice/fresco.gif"))
.setAutoPlayAnimations(true) //播放gif图片
.build();
//显示gif图
imageView.setController(controller);
图片加载框架之fresco的更多相关文章
- 强大的图片加载框架Fresco的使用
前面在卓新科技有限公司实习的时候,在自己的爱吖头条APP中,在图片异步加载的时候和ListView的滑动中,总会出现卡顿,这是因为图片的缓存做的不是足够到位,在项目监理的帮助下,有使用Xutils框架 ...
- Fresco从配置到使用(最高效的图片加载框架)
Frescoj说明: facebook开源的针对android应用的图片加载框架,高效和功能齐全. 支持加载网络,本地存储和资源图片: 提供三级缓存(二级memory和一级internal ...
- Android之图片加载框架Fresco基本使用(一)
PS:Fresco这个框架出的有一阵子了,也是现在非常火的一款图片加载框架.听说内部实现的挺牛逼的,虽然自己还没研究原理.不过先学了一下基本的功能,感受了一下这个框架的强大之处.本篇只说一下在xml中 ...
- 主流图片加载框架 ImageLoader、Glide、Picasso、Fresco 对比
图片缓存库主页: Glidehttps://github.com/bumptech/glide fresco - An Android library for managing images and ...
- Android中常见的图片加载框架
图片加载涉及到图片的缓存.图片的处理.图片的显示等.而随着市面上手机设备的硬件水平飞速发展,对图片的显示要求越来越高,稍微处理不好就会造成内存溢出等问题.很多软件厂家的通用做法就是借用第三方的框架进行 ...
- Android项目框架之图片加载框架的选择
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 从Android爆发以后,自定义的控件如EditTextWithDelete.ActionBar.P ...
- Android图片加载框架最全解析(一),Glide的基本用法
现在Android上的图片加载框架非常成熟,从最早的老牌图片加载框架UniversalImageLoader,到后来Google推出的Volley,再到后来的新兴军Glide和Picasso,当然还有 ...
- android-------非常好的图片加载框架和缓存库(Picasso)
Picasso是Square公司开源的一个Android图形缓存库, 可以实现图片加载(本地和网络)和缓存功能. 地址:http://square.github.io/picasso/ jar包下载: ...
- android--------Universal-Image-Loader图片加载框架和结合LruCache缓存图片
本博客包含包含Android-Universal-Image-Loader 网络图片加载框架实现图片加载和结合universal-image-loader与LruCache来自定义缓存图片,可以设置缓 ...
随机推荐
- SQL语句复习【专题九】
SQL语句复习[专题九] 视图:View视图的概念:视图是从若干基本表或其他视图构造出来的表.在创建一个视图时,只是存放的视图的定义,也即是动态检索数据的查询语句,而并不存放视图对应的数据在用户使用视 ...
- deep_learning_RNN序列模型
吴恩达<深度学习-序列模型>1 --循环序列模型:https://blog.csdn.net/weixin_41043240/article/details/79415134
- js动态添加控件(输入框为例)
写在前面 昨天得到一个需求,需要在账户登记页面中动态添加输入框,经过半天的捣鼓,最终完美成型,写下来跟大家分享下, 供大家参考 开始复制代码了 如果复制了我所有代码的话,注意看js最后面方法的备注,最 ...
- 【Swing】图形用户界面基础
前言 简单总结一下图形用户界面(Graphical User Interface)的相关基础,如GUI的基本元素:窗口,以及介绍Java中的图形界面开发设计的技术. 图形用户界面 图形用户界面就是以图 ...
- (转)I2C 上拉大小
中断,GPIO,I2C等一般都是OC或者OD门,芯片内部无上拉电阻时,则外部必须加上拉电阻才能输出高电平.一般I/O端的驱动能力在2-4mA量级,OC或者OD门的导通电压为0.4V左右,手机中加在上拉 ...
- phpStorm中使用xdebug工具调试docker容器中的程序
前提准备 phpstorm开发软件 + dnmp(docker + nginx + mysql +php) 配置好hosts 映射比如 /etc/hosts 127.0.0.1 tp5.de ...
- zencart更改css按钮的宽度css buttons
includes\functions\html_output.php 大概323行的zenCssButton函数 function zenCssButton($image = '', $text, $ ...
- LabVIEW中的波形图表(Chart)与波形图(Graph)
在百度上随便找的一个简单的例子: 具体链接:https://jingyan.baidu.com/article/5552ef47deb996518ffbc983.html 波形图表最先出现数据,等待所 ...
- 【踩坑记录】 使用form标签的 reset() 方法报错原因及处理方法
如果form标签内包含了 id 为 reset 的元素,在调用form的 reset() 方法时,会报xxx.reset is not a function,原因是在调用form的 reset() 方 ...
- windows安装解压版postgresql
1.postgresql解压版下载 2.将下载的postgresql-12.1-1-windows-x64-binaries.zip解压 data文件夹后面初始化数据库时手动创建的 3.初始化数据库 ...