关于Fresco的优点大家自行谷歌吧,它太强大太优秀了,我这一片小博文容纳不下啊羡慕,今天主要给大家简单介绍下Fresco的使用以及一些属性的介绍。

Fresco是一个强大的图片加载组件。使用它之后,你不需要再去关心图片的加载和显示这些繁琐的事情!支持Android2.3及以后的版本。
官网详细介绍了Fresco一些特性,我第一次看确实是惊呆了。https://www.fresco-cn.org/
2016年Fresco的最新的源码分析:https://github.com/desmond1121/Fresco-Source-Analysis
简述与其他常用图片缓存框架的比较
(1)Volley提供了一个新的控件NetworkImageView来代替传统的ImageView如果你的工程项目,是一个比较小的项目,或者要求不是很高的项目,处理比较简单的可以使用这个库,这个库是Google 2013 I/O发布的一个开源库。使用这个库在图片的处理上,没有提供任何的图片处理的操作,用于细粒度的数据连接还是可以的。
(2)Universal-Image-Loader是比较早的一个图片缓存组件,也一直受到开发者的推崇,在很多老的应用中使用。
(3)Picasso与Glide,无疑Glide胜出
(4)而Fresco作为新秀,不管从内存管理(三级缓存),图片的渐进式呈现,Gif图和Webp格式图像的加载,都是非常突出。(也是我最喜欢用的)
涉及的常用基本属性介绍
(1)layout_width和layout_height不支持warp_Content但是可以通过setAspectRetio();来设置宽高比
(2)fadeDuration()淡出时间;
(3)actualImageScaleType 设置图片缩放,通常使用foucsCrop,该属性值会通过算法把人头像放在中间
(4)placeholderImage下载成功之前显示的图片placeholderImageScaleType
(5)failureImage加载失败时显示的图片faiturelmagescateType
(6)retrylmage加载失败,提示用户点击重新加载的图片retrylmagescateType
(7)progressBarImage提示用户正在加载,和进度无关progressBarlmagescateType
(8)progressBarAutoRotateInterval图片自动旋转的时间间隔
(9)backgroundImage背景
(10)overlayImage叠加图
(11)pressedStateOverlayImage按下时候的叠加图
(12)roundAsCircle是否涉及圆圈
(13)roundedCornerRadius圆角
(14)roundTopLeft、roundTopRight…..分别设置4个角不同半径,设置为true以后可以在代码中通过RoundingParams的setConnersRadii()方法设置角度。
(15)roundWithOverlayColor边框的叠加颜色
(16)roundingBorderWidth边框宽度
(17)roundingBorderColor边框颜色
下面我们简单演示使用Fresco加载网络图片的流程:
演示效果如下(你们猜对了,又是本人的玉照安静):
第一步:导依赖包
与之前的android-image-indicator-master项目相同,本次依然使用AndroidStudio2.2。仍然采用在build.gradle下中dependencies下直接添加如下代码:
compile 'com.facebook.fresco:fresco:0.12.0'
同时可以根据个人项目需求添加如下依赖:
dependencies {
// 在 API < 14 上的机器支持 WebP 时,需要添加
compile 'com.facebook.fresco:animated-base-support:0.12.0'
// 支持 GIF 动图,需要添加
compile 'com.facebook.fresco:animated-gif:0.12.0'
// 支持 WebP (静态图+动图),需要添加
compile 'com.facebook.fresco:animated-webp:0.12.0'
compile 'com.facebook.fresco:webpsupport:0.12.0'
// 仅支持 WebP 静态图,需要添加
compile 'com.facebook.fresco:webpsupport:0.12.0'
}
第二步:添加网络权限
因为是加载网络图片所以必须在 AndroidManifest.xml配置文件中添加网络权限:
<uses-permission android:name="android.permission.INTERNET"/>
第三步:初始化Fresco类
在加载图片之前,你必须初始化Fresco类。你只需要调用Fresco.initialize一次即可完成初始化,下面分别介绍在MainActivity与Application中调用初始化方法
(1)在Application调用初始化(建议使用)
[MyApplication.java]
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Fresco.initialize(this);
}
}
做完上面的工作后,需要在 AndroidManifest.xml 中指定 Application 类。
(2)在MainActivity中调用初始化
需要注意的是要在setContentView之前初始化
package com.mly.panhouye.frescodemo;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.facebook.drawee.backends.pipeline.Fresco;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Fresco.initialize(this);//需要在setContentView之前初始化
setContentView(R.layout.activity_main);
}
}
第四步:layout中的xml布局文件
在布局之前需要在xml文件中加入命名空间
xmlns:fresco="http://schemas.android.com/apk/res-auto"
具体布局文件如下,本次演示通过按钮点击出发图片加载,使用SimpleDraweeView(注意:layout_width/height不支持wrap_content):
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:fresco="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.mly.panhouye.frescodemo.MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/my_image_view"
android:layout_centerHorizontal="true"
android:text="加载网络图片"
android:onClick="loadInternetImage"
android:layout_marginTop="12dp"
android:id="@+id/button" />
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/my_image_view"
android:layout_width="400dp"
android:layout_height="400dp"
fresco:placeholderImage="@mipmap/ic_launcher"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
第五步:java实现代码
package com.mly.panhouye.frescodemo;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.view.SimpleDraweeView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Fresco.initialize(this);//需要在setContentView之前初始化
setContentView(R.layout.activity_main);
}
//点击事件加载网络图片代码
public void loadInternetImage(View view){
Uri uri = Uri.parse("http://r.photo.store.qq.com/psb?/V12kkHqD1CWRD4/MeykWt0NXu0stiBFzf378D7ajKSDet6k1.Vaqmq2vps!/r/dKMAAAAAAAAA");
SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
draweeView.setImageURI(uri);
}
}
剩下的,Fresco会替你完成,比如:显示占位图直到加载完成;下载图片;缓存图片;图片不再显示时,从内存中移除等等等等。
本文仅仅介绍了Fresco最基本的使用方法,大家伙可以访问官网来尝试其他功能实现。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android
# FRESCO
# 开源框架
# Android Fresco图片加载优化的方案
# 详解Android之图片加载框架Fresco基本使用(二)
# 详解Android之图片加载框架Fresco基本使用(一)
# 详细分析Fresco源码之图片加载流程
# 加载
# 是一个
# 不支持
# 使用这个
# 官网
# 的是
# 都是
# 放在
# 又是
# 我这
# 要在
# 你不
# 很高
# 最喜欢
# 可以通过
# 给大家
# 详细介绍
# 再去
# 按下
# 较小
相关文章:
广东专业制作网站有哪些,广东省能源集团有限公司官网?
大同网页,大同瑞慈医院官网?
css网站制作参考文献有哪些,易聊怎么注册?
如何在万网主机上快速搭建网站?
5种Android数据存储方式汇总
创业网站制作流程,创业网站可靠吗?
高防服务器如何保障网站安全无虞?
如何打造高效商业网站?建站目的决定转化率
深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?
如何解决ASP生成WAP建站中文乱码问题?
宝塔建站教程:一键部署配置流程与SEO优化实战指南
建站与域名管理如何高效结合?
如何基于云服务器快速搭建个人网站?
如何做静态网页,sublimetext3.0制作静态网页?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
如何在阿里云香港服务器快速搭建网站?
,有什么在线背英语单词效率比较高的网站?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
定制建站流程解析:需求评估与SEO优化功能开发指南
网站代码制作软件有哪些,如何生成自己网站的代码?
定制建站策划方案_专业建站与网站建设方案一站式指南
南京网站制作费用,南京远驱官方网站?
潮流网站制作头像软件下载,适合母子的网名有哪些?
如何通过虚拟机搭建网站?详细步骤解析
内部网站制作流程,如何建立公司内部网站?
如何在IIS管理器中快速创建并配置网站?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
建站之星CMS建站配置指南:模板选择与SEO优化技巧
云南网站制作公司有哪些,云南最好的招聘网站是哪个?
三星网站视频制作教程下载,三星w23网页如何全屏?
怀化网站制作公司,怀化新生儿上户网上办理流程?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
如何用好域名打造高点击率的自主建站?
如何通过建站之星自助学习解决操作问题?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
php json中文编码为null的解决办法
建站VPS能否同时实现高效与安全翻墙?
官网网站制作腾讯审核要多久,联想路由器newifi官网
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
广德云建站网站建设方案与建站流程优化指南
哈尔滨网站建设策划,哈尔滨电工证查询网站?
免费视频制作网站,更新又快又好的免费电影网站?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
建站之星会员如何解锁更多建站功能?
设计网站制作公司有哪些,制作网页教程?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
制作电商网页,电商供应链怎么做?
电商平台网站制作流程,电商网站如何制作?
建站之星×万网:智能建站系统+自助建站平台一键生成
html制作网站的步骤有哪些,iapp如何添加网页?
*请认真填写需求信息,我们会在24小时内与您取得联系。