Frseco简单的使用+三级缓存

版权声明:橘子丶 https://blog.csdn.net/qq_43573190/article/details/87110687

1.导入依赖 按照需求添加

//Fresco图片加载框架
  implementation 'com.facebook.fresco:fresco:0.12.0'
  
 // 在 API < 14 上的机器支持 WebP 时,需要添加
  implementation 'com.facebook.fresco:animated-base-support:0.12.0'

  // 支持 GIF 动图,需要添加
  implementation 'com.facebook.fresco:animated-gif:0.12.0'

  // 支持 WebP (静态图+动图),需要添加
  implementation 'com.facebook.fresco:animated-webp:0.12.0'
  implementation 'com.facebook.fresco:webpsupport:0.12.0'

  // 仅支持 WebP 静态图,需要添加
  implementation 'com.facebook.fresco:webpsupport:0.12.0'

xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:juzi="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/sdv_icon"
        //设置圆效果
        juzi:roundAsCircle= "true"
        //圆角效果
        juzi:roundedCornerRadius="20dp"
        juzi:roundBottomRight="false"
        juzi:roundTopLeft="false"


        android:layout_width="180dp"
        android:layout_height="180dp"
        juzi:placeholderImage="@mipmap/ic_launcher" />

    <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/sdv_gif_icon"
        android:layout_width="200dp"
        android:layout_height="200dp" />
</LinearLayout>


Application

package com.example.kanghuwei.fresco;

import android.app.Application;

import com.facebook.drawee.backends.pipeline.Fresco;

/**
 * 创建人: 橘子丶
 * 邮箱: [email protected]
 * 创建时间: 2019/2/12 18:47
 */
public class APP extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //初始化Fresco
        Fresco.initialize(this);
    }
}

MainActivity.this

package com.example.kanghuwei.fresco;

import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

import com.facebook.drawee.backends.pipeline.Fresco;
import com.facebook.drawee.controller.AbstractDraweeController;
import com.facebook.drawee.interfaces.DraweeController;
import com.facebook.drawee.view.SimpleDraweeView;
import butterknife.BindView;
import butterknife.ButterKnife;

public class MainActivity extends AppCompatActivity {

    @BindView(R.id.sdv_icon)
    SimpleDraweeView sdvIcon;
    @BindView(R.id.sdv_gif_icon)
    SimpleDraweeView sdvGifIcon;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        //创建对象 调用方法 参数传递
                
                
        //加载图片
        Uri uri = Uri.parse("https://ws1.sinaimg.cn/large/0065oQSqgy1fze94uew3jj30qo10cdka.jpg");
        sdvIcon.setImageURI(uri);
        //加载时显示进度条
        sdvIcon.getHierarchy().setProgressBarImage(new ProgressBarDrawable());


        //加载gif动图
        Uri gifUri = Uri.parse("https://ww1.sinaimg.cn/large/0073sXn7ly1fze972ev1og309z0gok3u");
        DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setUri(gifUri)
                .setAutoPlayAnimations(true)
                .build();
        sdvGifIcon.setController(controller);
    }
}

清单文件中注册加权限

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.kanghuwei.fresco">
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:name=".APP"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

猜你喜欢

转载自blog.csdn.net/qq_43573190/article/details/87110687