Fresco加载图片详解
来源:互联网 发布:淘宝助理上传很慢 编辑:程序博客网 时间:2024/06/05 11:28
添加依赖
//只实现图片加载
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'}
开始使用 Fresco
如果你仅仅是想简单下载一张网络图片,在下载完成之前,显示一张占位图,那么简单使用 SimpleDraweeView 即可。
在加载图片之前,你必须初始化Fresco类。你只需要调用Fresco.initialize一次即可完成初始化,在 Application 里面做这件事再适合不过了(如下面的代码),注意多次的调用初始化是无意义的。
在application初始化
public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); Fresco.initialize(this); }}
做完上面的工作后,你需要在 AndroidManifest.xml 中指定你的 Application 类。为了下载网络图片,请确认你声明了网络请求的权限。
<manifest ... > <uses-permission android:name="android.permission.INTERNET" /> <application ... android:label="@string/app_name" android:name=".MyApplication" > ... </application> ... </manifest>
XML
<?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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="test.bwie.com.am20171102.MainActivity"> <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/my_image_view" android:layout_width="match_parent" android:layout_height="300dp" android:layout_centerInParent="true" fresco:placeholderImage="@mipmap/icon_placeholder" fresco:placeholderImageScaleType="fitCenter" fresco:progressBarImage="@mipmap/icon_progress_bar" fresco:progressBarImageScaleType="centerInside" fresco:progressBarAutoRotateInterval="5000" fresco:failureImage="@mipmap/icon_failure" fresco:failureImageScaleType="centerInside" fresco:retryImage="@mipmap/icon_retry" fresco:retryImageScaleType="centerInside" fresco:fadeDuration="5000" fresco:roundAsCircle="true" fresco:roundedCornerRadius="30dp" ></com.facebook.drawee.view.SimpleDraweeView></RelativeLayout>
placeholderImage
//下载时的默认图片
ScaleType
//图片的加载样式
progressBarImage
//加载中的进度
failureImage
//加载失败显示的图片
retryImage
//失败后点击重试的图片
fadeDuration
//加载进度的时间
fresco:roundAsCircle=”true”
//圆形图片
fresco:roundedCornerRadius=”30dp”
//圆角图片默认4个角可以设置单个
XML就设置这么多注意高度不可以用wrap_content必须给固定的值
MainActivity中
public class MainActivity extends AppCompatActivity {private SimpleDraweeView simpleDraweeView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { //创建SimpleDraweeView对象 simpleDraweeView = (SimpleDraweeView) findViewById(R.id.my_image_view); //创建将要下载的图片的URI Uri imageUri = Uri.parse("http://img4q.duitang.com/uploads/item/201502/28/20150228233429_caQnR.gif"); //开始下载 simpleDraweeView.setImageURI(imageUri); //创建DraweeController DraweeController controller = Fresco.newDraweeControllerBuilder() //加载的图片URI地址 .setUri(imageUri) //设置点击重试是否开启 .setTapToRetryEnabled(true) //设置GIF动图可用 .setAutoPlayAnimations(true) //设置旧的Controller .setOldController(simpleDraweeView.getController()) //构建 .build(); //设置DraweeController simpleDraweeView.setController(controller); }}
阅读全文
0 0
- Fresco加载图片详解
- Fresco 加载本地图片
- Fresco图片加载组件
- 图片加载Fresco
- 使用Fresco加载图片
- 图片加载利器--Fresco
- Fresco图片加载工具
- 图片加载库Fresco
- fresco加载本地图片
- 使用Fresco加载图片
- Fresco图片加载
- Fresco图片加载框架
- 使用Fresco加载图片
- 图片加载框架-Fresco
- Fresco图片加载
- Fresco加载图片优化
- fresco加载图片
- Fresco图片加载框架
- HttpClient的gradle权限
- Hello
- 练习 栈
- 洛谷 1991 无线通讯网 最小生成树 解题报告
- 2、操作系统的发展与分类
- Fresco加载图片详解
- python3和python2共存于windows
- 使用wireshark常用的过滤命令
- html定位与浮动
- nginx封装的数据结构
- hadoop2.8.2 FS SHELL
- DelayQueue,网吧记时
- 这是前面的话
- 【剑指offer】51-67题