1. 首先把网络、SD卡的读写权限添加上:<span style="font-family: Arial, Helvetica, sans-serif;">   </span>
  1. <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">
  2. <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE">
  3. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
  1. </pre><pre name="code" class="java">添加依赖,好像版本太高不支持GIF类型的动态图????
  1. <span style="font-family: Arial, Helvetica, sans-serif;"><span style="white-space:pre">         </span>compile 'com.facebook.fresco:fresco:0.9.0'</span>
  1. private SimpleDraweeView simple;//控件
  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3. //Fresco库的初始化,要先初始化库,才能完成布局文件的加载
  4. Fresco.initialize(this);//初始化框架
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.activity_main);

1、加载网络图片,在SimpleDraweeView控件显示

  1. String url = "http://img4.imgtn.bdimg.com/it/u=1738110171,2299636339&fm=21&gp=0.jpg";//正确网址
  2. Uri uri = Uri.parse("http://img4.imgtn.bdimg.com");//错误的地址
  3. //找出控件
  4. simple = (SimpleDraweeView) findViewById(R.id.simpledraweeview);
  1. simple.setImageURI(uri);//开始下载
  2. //重试,创建DraweeController对象
  3. DraweeController controller = Fresco.newDraweeControllerBuilder()
  4. .setUri(url)//URL地址
  5. .setTapToRetryEnabled(true)//开启点击重试
  6. .build();//构建
  7. simple.setController(controller);

SD卡的根目录:

  1. private String str = Environment.getExternalStorageDirectory().getAbsolutePath();
  1. </pre><pre name="code" class="java">

2、加载SD卡上面的图片,注意格式:

  1. <span style="white-space:pre">        </span>file:///。。。。。,字符串形式
  1. String uri= "file:///storage/emulated/0/DCIM/Camera/IMG_20160227_133717_904.jpg";
  1. <span style="white-space:pre">    </span>DraweeController controller = Fresco.newDraweeControllerBuilder()
  2. .setUri(uri)
  3. .setTapToRetryEnabled(true)
  4. .build();
  5. simple.setController(controller);<pre name="code" class="java">Uri uri=Uri.parse("asset:///aa.gif");
  6. DraweeController controller=Fresco.newDraweeControllerBuilder()
  7. .setUri(uri)
  8. .setAutoPlayAnimations(true)
  9. .build();
  10. simple.setController(controller);

3、加载res目录下的资源文件(图片)

注意格式:

  1. Uri uri = Uri.parse("res:///" + R.mipmap.bb113);
  2. DraweeController controller = Fresco.newDraweeControllerBuilder()
  3. .setUri(uri)
  4. .setTapToRetryEnabled(true)
  5. .build();
  6. simple.setController(controller);




4、加载assets文件夹下的动态图片(gif格式),也可以改为网络地址

注意格式:asset:///



  1. </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");


  1. DraweeController controller=Fresco.newDraweeControllerBuilder()
  2. .setUri(uri)
  3. .setAutoPlayAnimations(true)
  4. .build();
  5. simple.setController(controller);

  1. rap_content
  2. Drawees 不支持 wrap_content 属性。
  3. 所下载的图像可能和占位图尺寸不一致,如果设置出错图或者重试图的话,这些图的尺寸也可能和所下载的图尺寸不一致。
  4. 如果大小不一致,假设使用的是 wrap_content,图像下载完之后,View将会重新layout,改变大小和位置。这将会导致界面跳跃。
  5. 固定宽高比
  6. 只有希望显示固定的宽高比时,可以使用wrap_content。
  7. 如果希望图片以特定的宽高比例显示,例如 4:3,可以在XML中指定:
  8. <com.facebook.drawee.view.SimpleDraweeView
  9. android:id="@+id/my_image_view"
  10. android:layout_width="20dp"
  11. android:layout_height="wrap_content"
  12. fresco:viewAspectRatio="1.33"
  13. <!-- other attributes -->
  14. 也可以在代码中指定显示比例:
  15. mSimpleDraweeView.setAspectRatio(1.33f);

XML文件:

  1. <com.facebook.drawee.view.SimpleDraweeView
  2. android:id="@+id/my_image_view"
  3. android:layout_width="20dp"
  4. android:layout_height="20dp"
  5. fresco:fadeDuration="300"//图片淡出的事件(ms)
  6. fresco:actualImageScaleType="focusCrop"
  7. fresco:placeholderImage="@color/wait_color"//占位图
  8. fresco:placeholderImageScaleType="fitCenter"//占位图的缩放类型
  9. fresco:failureImage="@drawable/error"//失败图片
  10. fresco:failureImageScaleType="centerInside"//失败图片的类型
  11. fresco:retryImage="@drawable/retrying"//重试图片
  12. fresco:retryImageScaleType="centerCrop"//图的重试缩放类型
  13. fresco:progressBarImage="@drawable/progress_bar"//进度图片
  14. fresco:progressBarImageScaleType="centerInside"//进度图的缩放类型
  15. fresco:progressBarAutoRotateInterval="1000"//进度图自动旋转的间隔时间(ms)
  16. fresco:backgroundImage="@color/blue"//背景图片
  17. fresco:overlayImage="@drawable/watermark"//叠加图片
  18. fresco:pressedStateOverlayImage="@color/red"//按压状态下显示的叠加图
  19. fresco:roundAsCircle="false"//是否设置为圆形图片
  20. fresco:roundedCornerRadius="1dp"//圆角半径
  21. fresco:roundTopLeft="true"//左上角是否为圆角
  22. fresco:roundTopRight="false"//右上角是否为圆角
  23. fresco:roundBottomLeft="false"//左下角是否为圆角
  24. fresco:roundBottomRight="true"//右下角是否为圆角
  25. fresco:roundWithOverlayColor="@color/corner_color"//圆形或者圆角图片底下的叠加颜色
  26. fresco:roundingBorderWidth="2dp"//圆形或者圆角图片边框的宽度
  27. fresco:roundingBorderColor="@color/border_color"//圆形或者圆角边框的颜色
  28. />

    1. 缩放类型—ScaleType:
    2. 类型  描述
    3. center  居中,无缩放
    4. centerCrop  保持宽高比缩小或放大,使得两边都大于或等于显示边界。居中显示。
    5. focusCrop   同centerCrop, 但居中点不是中点,而是指定的某个点
    6. centerInside    使两边都在显示边界内,居中显示。如果图尺寸大于显示边界,则保持长宽比缩小图片。
    7. fitCenter   保持宽高比,缩小或者放大,使得图片完全显示在显示边界内。居中显示
    8. fitStart    同上。但不居中,和显示边界左上对齐
    9. fitEnd  同fitCenter, 但不居中,和显示边界右下对齐
    10. fitXY   不保存宽高比,填充满显示边界
    11. none    如要使用tile mode显示, 需要设置为none
    12. 推荐使用:focusCrop 类型

Fresco框架SimpleDraweeView控件的简单使用的更多相关文章

  1. FoxOne---一个快速高效的BS框架--WEB控件属性编辑器

    FoxOne---一个快速高效的BS框架--(1) FoxOne---一个快速高效的BS框架--(2) FoxOne---一个快速高效的BS框架--(3) FoxOne---一个快速高效的BS框架-- ...

  2. WebBrowser控件的简单应用2

    原文:WebBrowser控件的简单应用2 第一个简单应用里面讲述的是如何模拟调用当前网页的元素的事件或者赋值/取值.这次的应用讲述的是1:如何处理弹出新页面的事件(总是在我的浏览器里面现实新页面)2 ...

  3. vs2005中的WebBrowser控件的简单应用

    原文:vs2005中的WebBrowser控件的简单应用 这个控件被封装了一下,和以前的调用方式稍有不同.事件还是那几个,变化不大.方法变了不少.从网上能查到的资料不多,贴出一些代码来作参考.看看这段 ...

  4. wxPython中按钮、文本控件的简单运用

    本节学习图形用户界面 ------------------------ 本节介绍如何创建python程序的图形用户界面(GUI),也就是那些带有按钮和文本框的窗口.这里介绍wxPython : 下载地 ...

  5. 基于Winform框架DataGridView控件的SqlServer数据库查询展示功能的实现

    关键词:Winform.DataGridView.SqlServer 一个基于winform框架的C/S软件,主要实现对SqlServer数据库数据表的实时查询. 一.为DataGridView添加数 ...

  6. 安卓Design包之TabLayout控件的简单使用

    Google在2015的IO大会上,给我们带来了更加详细的Material Design设计规范,同时,也给我们带来了全新的Android Design Support Library,在这个supp ...

  7. IOS自定义日历控件的简单实现(附思想及过程)

    因为程序要求要插入一个日历控件,该空间的要求是从当天开始及以后的六个月内的日历,上网查资料基本上都说只要获取两个条件(当月第一天周几和本月一共有多少天)就可以实现一个简单的日历,剩下的靠自己的简单逻辑 ...

  8. iOS:UIMapView地图视图控件的简单使用

    可以通过设置MKMapView的mapViewType设置地图类型 MKMapTypeStandard 普通地图 MKMapTypeSatellite 卫星云图  MKMapTypeHybrid 普通 ...

  9. Android PullToRefresh下拉刷新控件的简单使用

    PullToRefresh这个开源库早就听说了,不过一直没用过.作为一个经典的的开源库,我觉得还是有必要认识一下. 打开github上的网址:https://github.com/chrisbanes ...

随机推荐

  1. hnust 心电图

    问题 A: 心电图 时间限制: 1 Sec  内存限制: 128 MB提交: 621  解决: 250[提交][状态][讨论版] 题目描述 众所周知,ACM/ICPC实验室聚集了一堆学霸Orz 有学霸 ...

  2. [oldboy-django][1初始django]模态对话框 + 动态加载gif (多对多数据库表)

    ajax+对话框(多对多) - 遮罩层,动态加载gif层,对话框层, a.一点击添加,绑定事件: - 出现遮罩层和动态gif层 - ajax向后台发送请求获取所有班级数据 - success,隐藏动态 ...

  3. easyui可封装的各种方法

    组件:datagrid 获取选中行(单行) var row = $('#tt').datagrid('getSelected');    if (row){        alert('Item ID ...

  4. order by 对null的处理

    [Oracle 结论] order by colum asc 时,null默认被放在最后order by colum desc 时,null默认被放在最前nulls first 时,强制null放在最 ...

  5. [HEOI2016/TJOI2016][bzoj4555] 求和 [斯特林数+NTT]

    题面 传送门 思路 首先,我们发现这个式子中大部分的项都和$j$有关(尤其是后面的$2^j\ast j!$),所以我们更换一下枚举方式,把这道题的枚举方式变成先$j$再$i$ $f(n)=\sum_{ ...

  6. [JSOI2012][bzoj4332] 分零食 [FFT]

    题面 传送门 思路 首先,这个数据如果没有这么大,我们还是可以做朋友的...... 设$dp\left[i\right]\left[j\right]$代表前j个零食分给了前i个人的方案数 那么dp方程 ...

  7. splay模板整理

    1.插入一个数 void insert(int x) { if (!root) { ++tot; e[tot].left = e[tot].right = e[tot].fa = ; e[tot].v ...

  8. tomcat镜像构建

    1.目录结构与配置文件如下 [root@centos05 java]# tree . ├── apache-tomcat-.tar.gz ├── Dockerfile ├── jdk-8u45-lin ...

  9. springboot开启定时任务 添加定时任务 推送

    最近在自学Java的springboot框架,要用到定时推送消息.参考了网上的教程,自己调试,终于调好了.下面将网上的教程归纳下,总结复习下.  springboot开启定时任务  在SpringBo ...

  10. 【CF778C】Peterson Polyglot(Trie树,启发式合并)

    题意:有一棵n个结点的只由小写字母组成的Trie树,给定它的具体形态,问删除哪一层后剩下Trie树的结点数最少 n<=3e5 思路:先建出原Trie树,对于每一层的每一个结点计算删除后对答案的贡 ...