Fresco框架SimpleDraweeView控件的简单使用
- 首先把网络、SD卡的读写权限添加上:<span style="font-family: Arial, Helvetica, sans-serif;"> </span>
- <span style="font-family: Arial, Helvetica, sans-serif;"><span style="white-space:pre"> </span></span><pre name="code" class="html"><span style="white-space:pre"> </span><uses-permission android:name="android.permission.INTERNET">
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE">
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
- </pre><pre name="code" class="java">添加依赖,好像版本太高不支持GIF类型的动态图????
- <span style="font-family: Arial, Helvetica, sans-serif;"><span style="white-space:pre"> </span>compile 'com.facebook.fresco:fresco:0.9.0'</span>
- private SimpleDraweeView simple;//控件
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- //Fresco库的初始化,要先初始化库,才能完成布局文件的加载
- Fresco.initialize(this);//初始化框架
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
1、加载网络图片,在SimpleDraweeView控件显示
- String url = "http://img4.imgtn.bdimg.com/it/u=1738110171,2299636339&fm=21&gp=0.jpg";//正确网址
- Uri uri = Uri.parse("http://img4.imgtn.bdimg.com");//错误的地址
- //找出控件
- simple = (SimpleDraweeView) findViewById(R.id.simpledraweeview);
- simple.setImageURI(uri);//开始下载
- //重试,创建DraweeController对象
- DraweeController controller = Fresco.newDraweeControllerBuilder()
- .setUri(url)//URL地址
- .setTapToRetryEnabled(true)//开启点击重试
- .build();//构建
- simple.setController(controller);
SD卡的根目录:
- private String str = Environment.getExternalStorageDirectory().getAbsolutePath();
- </pre><pre name="code" class="java">
2、加载SD卡上面的图片,注意格式:
- <span style="white-space:pre"> </span>file:///。。。。。,字符串形式
- String uri= "file:///storage/emulated/0/DCIM/Camera/IMG_20160227_133717_904.jpg";
- <span style="white-space:pre"> </span>DraweeController controller = Fresco.newDraweeControllerBuilder()
- .setUri(uri)
- .setTapToRetryEnabled(true)
- .build();
- simple.setController(controller);<pre name="code" class="java">Uri uri=Uri.parse("asset:///aa.gif");
- DraweeController controller=Fresco.newDraweeControllerBuilder()
- .setUri(uri)
- .setAutoPlayAnimations(true)
- .build();
- simple.setController(controller);
3、加载res目录下的资源文件(图片)
注意格式:
- Uri uri = Uri.parse("res:///" + R.mipmap.bb113);
- DraweeController controller = Fresco.newDraweeControllerBuilder()
- .setUri(uri)
- .setTapToRetryEnabled(true)
- .build();
- simple.setController(controller);
4、加载assets文件夹下的动态图片(gif格式),也可以改为网络地址
注意格式:asset:///
- </pre><p></p><p><span style="font-family:宋体; color:#808080"><span style="font-size:18px"><em></em></span></span></p><pre name="code" class="java"><span style="white-space:pre"> </span>Uri uri=Uri.parse("asset:///aa.gif");
- DraweeController controller=Fresco.newDraweeControllerBuilder()
- .setUri(uri)
- .setAutoPlayAnimations(true)
- .build();
- simple.setController(controller);
- rap_content
- Drawees 不支持 wrap_content 属性。
- 所下载的图像可能和占位图尺寸不一致,如果设置出错图或者重试图的话,这些图的尺寸也可能和所下载的图尺寸不一致。
- 如果大小不一致,假设使用的是 wrap_content,图像下载完之后,View将会重新layout,改变大小和位置。这将会导致界面跳跃。
- 固定宽高比
- 只有希望显示固定的宽高比时,可以使用wrap_content。
- 如果希望图片以特定的宽高比例显示,例如 4:3,可以在XML中指定:
- <com.facebook.drawee.view.SimpleDraweeView
- android:id="@+id/my_image_view"
- android:layout_width="20dp"
- android:layout_height="wrap_content"
- fresco:viewAspectRatio="1.33"
- <!-- other attributes -->
- 也可以在代码中指定显示比例:
- mSimpleDraweeView.setAspectRatio(1.33f);
XML文件:
- <com.facebook.drawee.view.SimpleDraweeView
- android:id="@+id/my_image_view"
- android:layout_width="20dp"
- android:layout_height="20dp"
- fresco:fadeDuration="300"//图片淡出的事件(ms)
- fresco:actualImageScaleType="focusCrop"
- fresco:placeholderImage="@color/wait_color"//占位图
- fresco:placeholderImageScaleType="fitCenter"//占位图的缩放类型
- fresco:failureImage="@drawable/error"//失败图片
- fresco:failureImageScaleType="centerInside"//失败图片的类型
- fresco:retryImage="@drawable/retrying"//重试图片
- fresco:retryImageScaleType="centerCrop"//图的重试缩放类型
- fresco:progressBarImage="@drawable/progress_bar"//进度图片
- fresco:progressBarImageScaleType="centerInside"//进度图的缩放类型
- fresco:progressBarAutoRotateInterval="1000"//进度图自动旋转的间隔时间(ms)
- fresco:backgroundImage="@color/blue"//背景图片
- fresco:overlayImage="@drawable/watermark"//叠加图片
- fresco:pressedStateOverlayImage="@color/red"//按压状态下显示的叠加图
- fresco:roundAsCircle="false"//是否设置为圆形图片
- fresco:roundedCornerRadius="1dp"//圆角半径
- fresco:roundTopLeft="true"//左上角是否为圆角
- fresco:roundTopRight="false"//右上角是否为圆角
- fresco:roundBottomLeft="false"//左下角是否为圆角
- fresco:roundBottomRight="true"//右下角是否为圆角
- fresco:roundWithOverlayColor="@color/corner_color"//圆形或者圆角图片底下的叠加颜色
- fresco:roundingBorderWidth="2dp"//圆形或者圆角图片边框的宽度
- fresco:roundingBorderColor="@color/border_color"//圆形或者圆角边框的颜色
- />
- 缩放类型—ScaleType:
- 类型 描述
- center 居中,无缩放
- centerCrop 保持宽高比缩小或放大,使得两边都大于或等于显示边界。居中显示。
- focusCrop 同centerCrop, 但居中点不是中点,而是指定的某个点
- centerInside 使两边都在显示边界内,居中显示。如果图尺寸大于显示边界,则保持长宽比缩小图片。
- fitCenter 保持宽高比,缩小或者放大,使得图片完全显示在显示边界内。居中显示
- fitStart 同上。但不居中,和显示边界左上对齐
- fitEnd 同fitCenter, 但不居中,和显示边界右下对齐
- fitXY 不保存宽高比,填充满显示边界
- none 如要使用tile mode显示, 需要设置为none
- 推荐使用:focusCrop 类型
Fresco框架SimpleDraweeView控件的简单使用的更多相关文章
- FoxOne---一个快速高效的BS框架--WEB控件属性编辑器
FoxOne---一个快速高效的BS框架--(1) FoxOne---一个快速高效的BS框架--(2) FoxOne---一个快速高效的BS框架--(3) FoxOne---一个快速高效的BS框架-- ...
- WebBrowser控件的简单应用2
原文:WebBrowser控件的简单应用2 第一个简单应用里面讲述的是如何模拟调用当前网页的元素的事件或者赋值/取值.这次的应用讲述的是1:如何处理弹出新页面的事件(总是在我的浏览器里面现实新页面)2 ...
- vs2005中的WebBrowser控件的简单应用
原文:vs2005中的WebBrowser控件的简单应用 这个控件被封装了一下,和以前的调用方式稍有不同.事件还是那几个,变化不大.方法变了不少.从网上能查到的资料不多,贴出一些代码来作参考.看看这段 ...
- wxPython中按钮、文本控件的简单运用
本节学习图形用户界面 ------------------------ 本节介绍如何创建python程序的图形用户界面(GUI),也就是那些带有按钮和文本框的窗口.这里介绍wxPython : 下载地 ...
- 基于Winform框架DataGridView控件的SqlServer数据库查询展示功能的实现
关键词:Winform.DataGridView.SqlServer 一个基于winform框架的C/S软件,主要实现对SqlServer数据库数据表的实时查询. 一.为DataGridView添加数 ...
- 安卓Design包之TabLayout控件的简单使用
Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,在这个supp ...
- IOS自定义日历控件的简单实现(附思想及过程)
因为程序要求要插入一个日历控件,该空间的要求是从当天开始及以后的六个月内的日历,上网查资料基本上都说只要获取两个条件(当月第一天周几和本月一共有多少天)就可以实现一个简单的日历,剩下的靠自己的简单逻辑 ...
- iOS:UIMapView地图视图控件的简单使用
可以通过设置MKMapView的mapViewType设置地图类型 MKMapTypeStandard 普通地图 MKMapTypeSatellite 卫星云图 MKMapTypeHybrid 普通 ...
- Android PullToRefresh下拉刷新控件的简单使用
PullToRefresh这个开源库早就听说了,不过一直没用过.作为一个经典的的开源库,我觉得还是有必要认识一下. 打开github上的网址:https://github.com/chrisbanes ...
随机推荐
- 移动Web应用程序开发HTML5篇
https://software.intel.com/zh-cn/blogs/2012/03/09/webhtml5-offline-web-applications
- 移动web前端开发小结
注意:Chrome模拟手机的显示的界面是有误差的,强烈建议一定要在真机测试自己的移动端页面(以移动端页面为准). 1.页面高度渲染错误,页面的高度是否包含了导航,(华为手机就是偏偏有底部菜单) 设置窗 ...
- Anaconda的用法
1. conda list -----显示anacoda安装的模块 2.jupyter notebook----启动网页上的python编程环境 3.anacoda search -t conda ...
- TOJ 3750: 二分查找
3750: 二分查找 Time Limit(Common/Java):3000MS/9000MS Memory Limit:65536KByteTotal Submit: 1925 ...
- PHP共享内存的应用shmop系列
简单的说明 可能很少情况会使用PHP来操控共享内存,一方面在内存的控制上,MC已经提供了一套很好的方式,另一方面,自己来操控内存的难度较大,内存的读写与转存,包括后面可能会用到的存储策略,要是没有一定 ...
- Kafka 1.0版本发布
Kafka 1.0版本发布 1.0.0 2017年11月1日发布 源码下载: kafka-1.0.0-src.tgz(asc,sha512) 二进制下载: Scala 2.11 - kafka_2.1 ...
- 关于JavaWeb开发的一些感悟
从事JavaWeb的开发已经三年了,从最开始的啥都不会,到慢慢的能够独立做项目,从一开始的一片茫然,到现在的心中有数.对于技术.业务也有了自己的看法. JavaWeb开发所涉及到的知识点非常多,涉及到 ...
- [bzoj3944] sum [杜教筛模板]
题面: 传送门 就是让你求$ \varphi\left(i\right) $以及$ \mu\left(i\right) $的前缀和 思路: 就是杜教筛的模板 我们把套路公式拿出来: $ g\left( ...
- Java项目性能监控和调优工具-Javamelody的学习总结
1.简介: JavaMelody能够在运行环境监测Java或Java EE应用程序服务器.并以图表的形式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http ...
- [暑假集训--数论]poj2262 Goldbach's Conjecture
In 1742, Christian Goldbach, a German amateur mathematician, sent a letter to Leonhard Euler in whic ...