• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android中使用开源框架Fresco处理图片,

Android中使用开源框架Fresco处理图片,

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android fresco,android fresco使用,fresco框架,fresco框架的使用,fresco框架下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android中使用开源框架Fresco处理图片,


本文为原创博文,转载请注明原文链接:http://www.cnblogs.com/panhouye/p/6278116.html

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

 Fresco是一个强大的图片加载组件。使用它之后,你不需要再去关心图片的加载和显示这些繁琐的事情!支持Android2.3及以后的版本。

本文为原创博文,转载请注明原文链接:http://www.cnblogs.com/panhouye/p/6278116.html

 官网详细介绍了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下直接添加如下代码:

1 compile 'com.facebook.fresco:fresco:0.12.0'

同时可以根据个人项目需求添加如下依赖:

 1 dependencies {
 2     // 在 API < 14 上的机器支持 WebP 时,需要添加
 3     compile 'com.facebook.fresco:animated-base-support:0.12.0'
 4     // 支持 GIF 动图,需要添加
 5     compile 'com.facebook.fresco:animated-gif:0.12.0'
 6     // 支持 WebP (静态图+动图),需要添加
 7     compile 'com.facebook.fresco:animated-webp:0.12.0'
 8     compile 'com.facebook.fresco:webpsupport:0.12.0'
 9     // 仅支持 WebP 静态图,需要添加
10     compile 'com.facebook.fresco:webpsupport:0.12.0'
11 }

第二步:添加网络权限

因为是加载网络图片所以必须在 AndroidManifest.xml配置文件中添加网络权限:

1 <uses-permission android:name="android.permission.INTERNET"/>

第三步:初始化Fresco类

在加载图片之前,你必须初始化Fresco类。你只需要调用Fresco.initialize一次即可完成初始化,下面分别介绍在MainActivity与Application中调用初始化方法

(1)在Application调用初始化(建议使用)

1 [MyApplication.java]
2 public class MyApplication extends Application {
3     @Override
4     public void onCreate() {
5         super.onCreate();
6         Fresco.initialize(this);
7     }
8 }

做完上面的工作后,需要在 AndroidManifest.xml 中指定 Application 类。

(2)在MainActivity中调用初始化

需要注意的是要在setContentView之前初始化

 1 package com.mly.panhouye.frescodemo;
 2 import android.os.Bundle;
 3 import android.support.v7.app.AppCompatActivity;
 4 import com.facebook.drawee.backends.pipeline.Fresco;
 5 public class MainActivity extends AppCompatActivity {
 6     @Override
 7     protected void onCreate(Bundle savedInstanceState) {
 8         super.onCreate(savedInstanceState);
 9         Fresco.initialize(this);//需要在setContentView之前初始化
10         setContentView(R.layout.activity_main);
11     }
12 }

第四步:layout中的xml布局文件

在布局之前需要在xml文件中加入命名空间

1 xmlns:fresco="http://schemas.android.com/apk/res-auto"

实现演示效果中的圆形图片以及边框线只需要加一下三行代码(属性作用请看文章前面的介绍):

1 fresco:roundAsCircle="true"
2  fresco:roundingBorderWidth="3dp"
3  fresco:roundingBorderColor="@color/colorAccent"

具体布局文件如下,本次演示通过按钮点击出发图片加载,使用SimpleDraweeView(注意:layout_width/height不支持wrap_content):

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     xmlns:fresco="http://schemas.android.com/apk/res-auto"
 5     android:id="@+id/activity_main"
 6     android:layout_width="match_parent"
 7     android:layout_height="match_parent"
 8     tools:context="com.mly.panhouye.frescodemo.MainActivity">
 9     <Button
10         android:layout_width="wrap_content"
11         android:layout_height="wrap_content"
12         android:layout_below="@+id/my_image_view"
13         android:layout_centerHorizontal="true"
14         android:text="加载网络图片"
15         android:onClick="loadInternetImage"
16         android:layout_marginTop="12dp"
17         android:id="@+id/button" />
18     <com.facebook.drawee.view.SimpleDraweeView
19         android:id="@+id/my_image_view"
20         android:layout_width="400dp"
21         android:layout_height="



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android中使用开源框架Fresco处理图片,

相关文章

  • 2017-05-26应用开始界面简单倒计时的dialog,界面倒计时dialog
  • 2017-05-26二维码的扫描和生成--第三方开源--ZXing,--第三方开源--zxing
  • 2017-05-26AndroidStudio下使用 RecyclerView xml文件不显示预览条目并报错类似:NoClassDefFoundError 问题解决,studiorecyclerview
  • 2017-05-26Android 面试题总结(二)
  • 2017-05-26关于jni编译32位、64位动态库(Android.mk和Application.mk文件),jniapplication.mk
  • 2017-05-26Android 日常开发总结的技术经验 60 条,android60
  • 2017-05-26android studio 中去除应用标题栏,androidstudio
  • 2017-05-26编译android源码6---运行android编译源码
  • 2017-05-26Android第四天,神秘封印礼盒第四天
  • 2017-05-26安卓开源项目周报0208,安卓开源项目0208

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • mysql查询语句分析 explain用法
    • Android编译错误——undefined reference to,androidundefined
    • Android程序中使用iconfont心得,androidiconfont
    • Android中实现APP文本内容的分享发送与接收方法简述,androidapp
    • Apache Cordova开发Android应用程序——番外篇,cordovaandroid
    • Android中Action Bar的使用
    • 硅谷商城第二版5--个人中心模块,硅谷商城第二版5--
    • Android实战技巧之四十八:Android上的Java8和kotlin
    • android实现文字渐变效果和歌词进度的效果
    • 7.2.1 Android XML数据解析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有