参考资料:http://fresco-cn.org/docs/getting-started.html#_   
http://www.wfuyu.com/technology/23636.html
fresco是facebook推出的一款强大的android图片处理库, github地址:https://github.com/facebook/fresco 里面有官方的使用配置文档,而且是中文的。
因为本人是在AndroidStudio上面进行项目开发,在此工具内配置方法是在app 的build.gradle文件中添加如下代码
dependencies {
compile 'com.facebook.fresco:fresco:0.5.0+'
}
官方文档已经说fresco的类库发布到了Maven中央库,所以我们只需添加上面的代码再同步编译即可,如果无效,请在project的build.gradle文件中添加以下红色代码:
allprojects {repositories {jcenter()mavenCentral() }}

这样你就可以在你项目中使用fresco。

现在来说说最简单的使用:就是加载网络图片,
第一:在你的application类onCreate方法中添加
Fresco.initialize(instance);

第二:fresco是通过控件来实现它内部的优化缓存处理,我们使用的时候是通过控件来使用,具体如下

<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/user_avator"
    android:layout_width="50dp"
    android:layout_height="50dp"
    fresco:roundAsCircle="true"
    fresco:roundedCornerRadius="180dp"
    fresco:actualImageScaleType="focusCrop"
    android:layout_centerVertical="true" />

大家可能看到,属性中存在fresco:开头的声明。这个是fresco的自定义属性,如果我们需要使用其自定义属性,必须在我们的xml根布局中添加声明/命名空间,下图红色部分

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fresco="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

第三:在代码中具体的使用

Uri uri = Uri.parse(http://b.hiphotos.baidu.com/image/pic/item/e78.jpg);
mAvatorImg.setImageURI(uri);
现在介绍一些fresco的属性,通过这些属性我们可以很方便的定制一些效果
<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/my_image_view"
    android:layout_width="20dp"   // 不支持wrap_content 如果要设置宽高比, 需要在Java代码中指定setAspectRatio(1.33f);
    android:layout_height="20dp"    // 不支持wrap_content 
    fresco:fadeDuration="300"
    fresco:actualImageScaleType="focusCrop"  // 设置图片缩放. 通常使用focusCrop,该属性值会通过算法把人头像放在中间
    fresco:placeholderImage="@color/wait_color"  // 下载成功之前显示的图片
    fresco:placeholderImageScaleType="fitCenter"  
    fresco:failureImage="@drawable/error" // 加载失败的时候显示的图片
    fresco:failureImageScaleType="centerInside"
    fresco:retryImage="@drawable/retrying" // 加载失败,提示用户点击重新加载的图片(会覆盖failureImage的图片)
    fresco:retryImageScaleType="centerCrop"
    fresco:progressBarImage="@drawable/progress_bar"// 提示用户正在加载,和加载进度无关
    fresco:progressBarImageScaleType="centerInside"
    fresco:progressBarAutoRotateInterval="1000"
    fresco:backgroundImage="@color/blue"
    fresco:overlayImage="@drawable/watermark"
    fresco:pressedStateOverlayImage="@color/red"
    fresco:roundAsCircle="false" // 是不是设置圆圈
    fresco:roundedCornerRadius="1dp" // 圆角角度,180的时候会变成圆形图片
    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"
  />

修改图片尺寸
Uri uri = "file:///mnt/sdcard/MyApp/myfile.jpg";
int width = 50, height = 50;
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
    .setResizeOptions(new ResizeOptions(width, height))
    .build();
PipelineDraweeController controller = Fresco.newDraweeControllerBuilder()
    .setOldController(mDraweeView.getController())
    .setImageRequest(request)
    .build();
mSimpleDraweeView.setController(controller);

自动旋转
ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uri)
    .setAutoRotateEnabled(true)

.build();

Fresco最最最简单使用相关推荐

  1. 第二话 最最最简单的计算机

    上一话说到, 从灯泡的一亮一灭,我们可以读出"和",我们设想制作这样一台机器,可以计算两个数相加,最后由灯泡来显示结果. 但是,要做这一台会计算的机器,真不知道怎么下手. 我也说了 ...

  2. smarty课程---最最最简单的smarty例子

    smarty课程---最最最简单的smarty例子 一.总结 一句话总结:其实所有的模板引擎的工作原理是差不多的,无非就是在php程序里面用正则匹配将模板里面的标签替换为php代码从而将两者混合为一个 ...

  3. python从入门到大神---4、python3文件操作最最最最简单实例

    python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...

  4. 初识Shell Scripts编程--最最简单的shell例子

    前段时间因为要往一个文件写入一系列随机数给大家用,自己用C语言写了一个,把源文件发给大家,然后大家还要编译,运行,有时候里面的代码需要修改重新编译运行,很是麻烦,其实这些都可以用简单的Shell Sc ...

  5. python文件式和交互式道路标志_其它课程中的python---4、Matplotlib最最最最简单使用...

    其它课程中的python---4.Matplotlib最最最最简单使用 一.总结 一句话总结: 慢慢来吧,不着急,心态平和和沉稳:每次和世界交互,你就能感受到无比的自信 1.如何区别python2和p ...

  6. 微信小程序----最最最最最简单的日历做法

    微信小程序--最最最最最简单的日历做法 写这篇文章的时候时间是2018/8/16,该日历写法但求界面简单,实现功能,如果需要更华丽的效果或者其他界面请自行更改,8月份日历效果图: 默认从1号开始排序, ...

  7. 【图像识别】训练一个最最简单的AI使其识别Vtuber

    前言: 前几天看完了pytorch入门教程,想着要做一个小玩意巩固一下知识点,然后又想着大半年没整活了,于是就想着和虚拟主播缝合起来,还能给自己增添一点动力 本人只是本科大一非计科专业,只是在课余时间 ...

  8. android fersco 框架,Android Fresco框架的简单使用

    Uri uri = Uri.parse("xxx"); PipelineDraweeControllerBuilder sdcb = Fresco.newDraweeControl ...

  9. 《偷梁换柱》全世界最最简单对付SMSS。EXE病毒的方法,可能也是对付某类流氓程序的好方法...

    这段时间感染了SMSS.EXE,还有其他很多木马, 找了些工具,删除了大部分的木马,最后发现吃我内存,耗费我时间的smss.exe还是存在. HOHO..没办法..我才512M内存啊,他一小时就要吃我 ...

最新文章

  1. 云服务器dns配置文件,linux服务器dns配置文件
  2. 条款22: 尽量用“传引用”而不用“传值”
  3. hdu3035 最小割转换成最短路
  4. css:text-align:justify的用法
  5. 2021-01-07 matlab数值分析 数值积分与数值微分 复合梯形公式 复合Simpson公式
  6. [转]解决微信及360浏览器无法读取本地图片问题
  7. bzoj 3394: [Usaco2009 Jan]Best Spot 最佳牧场(floyd)
  8. PHP mysql问号通配符个数_php – MySQL:计算每个条目的LIKE匹配数
  9. 自定义Android TabHost的背景及文字
  10. 新书榜TOP 20占了17位!榜单里有哪些值得入手的技术新书?
  11. phalcon index.php,除了Phalcon php中的indexAction之外,无法调用indexController的动作
  12. 关于无线温度监测系统
  13. MybatisPlus联合查询
  14. JVM垃圾回收器G1详解
  15. 系统分析师-2021年下午简答题
  16. 使用Java做ORC图片识别
  17. MFRC53101TOFE小知识
  18. 小程序的发布上线流程
  19. 读取位置 0xdddddddd 时发生访问冲突
  20. thinkphp网站提示缓存文件写入失败

热门文章

  1. matlab物流配送最优路径,基于Matlab物流配送路径优化问题遗传算法的实现
  2. 旧时王谢堂前燕,飞入寻常百姓家——Infiniband实现10Gbps互联
  3. fat16和fat32文件系统学习
  4. 仁者如射,射者正己而后发。发而不中,不怨胜己者,反求诸己而已矣。
  5. ie浏览器上取到多个MAC地址
  6. 电磁学整理(猴博士)
  7. mac OS 安装淘宝npm镜像
  8. 2014年终工作总结
  9. Java爬虫饿了么商铺证书_美团、饿了么、百度外卖三大外卖平台的店铺、菜品数据爬虫源码...
  10. 将CAD图片导进AD中