Android Fresco工具类的简单使用方法

来源:互联网 发布:单片机温度计原理图 编辑:程序博客网 时间:2024/06/06 14:24

在加载图片之前,你必须初始化Fresco类。你只需要调用Fresco.initialize一次即可完成初始化,在 Application 里面做这件事再适合不过了(如下面的代码),注意多次的调用初始化是无意义的。

 
//[MyApplication.java]
public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Fresco.initialize(this);
    }
}

除此之外,还需要在 AndroidManifest.xml 中指定你的 Application 类。为了下载网络图片,请确认你声明了网络请求和SD卡的权限。

 
 <manifest
    ...>
    <uses-permission android:name="android.permission.INTERNET" />
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <application
      ...
      android:name=".MyApplication"
      >
      ...
    </application>
  </manifest>

然后,在xml布局文件中, 加入SimpleDraweeView

 
<com.facebook.drawee.view.SimpleDraweeView
  android:layout_width="120dp"
  android:layout_height="120dp"
  fresco:fadeDuration="300" // 淡出时间,毫秒。
  fresco:actualImageScaleType="focusCrop" // 等同于android:scaleType。
  fresco:placeholderImage="@color/wait_color" // 加载时显示的占位图。
  fresco:placeholderImageScaleType="fitCenter" // 占位图的缩放模式。
  fresco:failureImage="@drawable/error" // 加载失败时显示的图。
  fresco:failureImageScaleType="centerInside" // 加载失败时显示图的缩放模式。
  fresco:retryImage="@drawable/retrying" // 重试时显示图。
  fresco:retryImageScaleType="centerCrop" // 重试时显示图的缩放模式。
  fresco:progressBarImage="@drawable/progress_bar" // 进度条显示图。
  fresco:progressBarImageScaleType="centerInside" // 进度条时显示图的缩放模式。
  fresco:progressBarAutoRotateInterval="1000" // 进度条旋转时间间隔。
  fresco:backgroundImage="@color/blue" // 背景图,不会被View遮挡。
  fresco:roundAsCircle="false" // 是否是圆形图片。
  fresco:roundedCornerRadius="1dp" // 四角圆角度数,如果是圆形图片,这个属性被忽略。
  fresco:roundTopLeft="true" // 左上角是否圆角。
  fresco:roundTopRight="false" // 右上角是否圆角。
  fresco:roundBottomLeft="false" // 左下角是否圆角。
  fresco:roundBottomRight="true" // 左下角是否圆角。
  fresco:roundingBorderWidth="2dp" // 描边的宽度。
  fresco:roundingBorderColor="@color/border_color" //描边的颜色。
/>

最后,开始加载图片:

 
Uri uri = Uri.parse("https://raw.githubusercontent.com/facebook/fresco/gh-pages/static/logo.png");
SimpleDraweeView draweeView = (SimpleDraweeView) findViewById(R.id.my_image_view);
draweeView.setImageURI(uri);

剩下的,Fresco会替你完成:

  • 显示占位图直到加载完成;
  • 下载图片;
  • 缓存图片;
  • 图片不再显示时,从内存中移除;
原创粉丝点击