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. linux常用的日志分析脚本

    linux实用的日志分析脚本 日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 /Dec/::: +] “GET /query/trendxml/district/tod ...

  2. c++ primer plus 第6版 部分三 9章 - 章

    c++ primer plus 第6版                                               部分三 9章 - 章 第9章   内存模型和名称空间 1.单独编译 ...

  3. 【LeetCode】Merge Two Sorted Lists(合并两个有序链表)

    这道题是LeetCode里的第21道题. 题目描述: 将两个有序链表合并为一个新的有序链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1->2->4, 1-&g ...

  4. ubuntu16.04中docker安装curl拒绝连接问题

    在Ubuntu16.04中安装docker ce,安装步骤按照官网说明https://docs.docker.com/engine/installation/linux/docker-ce/ubunt ...

  5. input框的限制(仅数字以及电话号码的限制)

    电话号码限制 <input  type="text"  id="phone" maxlength="11" onkeyup=" ...

  6. HDU3232 Crossing Rivers 数学期望问题

    Crossing Rivers                                                                                     ...

  7. 手机安装app总是显示未安装

    手机安装软件总是显示未安装 查看是否开启了护眼模式或者护眼工具等干扰屏幕的软件.关掉,再安装即可

  8. httpClient 保持session

    import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.HttpClient; import ...

  9. IIS8 不能在此路径中使用此配置节。如果在父级别上锁定了该节

    问题: 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的(overrideModeDefault="Deny"),或者是通过包含 overr ...

  10. BZOJ 1497 最大获利(最大权闭合图)

    1497: [NOI2006]最大获利 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 4686  Solved: 2295 [Submit][Statu ...