Android中使用fresco加载图片

首先当然还是导入依赖包

compile 'com.facebook.fresco:fresco:1.5.0'

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

public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Fresco.initialize(this);
    }
}

组件使用SimpleDraweeView,记着定义宽高

<com.facebook.drawee.view.SimpleDraweeView
    android:id="@+id/my_image_view"
    android:layout_width="130dp"
    android:layout_height="130dp"
    fresco:placeholderImage="@drawable/my_drawable"
  />

其中可以定义的属性多种多样例如

"@+id/my_image_view"
  android:layout_width="20dp"
  android:layout_height="20dp"
  fresco:fadeDuration="300"
  fresco:actualImageScaleType="focusCrop"
  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"
  fresco:overlayImage="@drawable/watermark"
  fresco:pressedStateOverlayImage="@color/red"
  fresco:roundAsCircle="false"
  fresco:roundedCornerRadius="1dp"
  fresco:roundTopLeft="true"
  fresco:roundTopRight="false"
  fresco:roundBottomLeft="false"
  fresco:roundBottomRight="true"
  fresco:roundWithOverlayColor="@color/corner_color"
  fresco:roundingBorderWidth="2dp"
  fresco:roundingBorderColor="@color/border_color"
/>

最后就是调用了

myViewHolder.iv.setImageURI("http://img.gank.io/fef497ed-83ba-46f6-8a94-0e7b724e1c10");

还有就是动图,导入依赖

compile 'com.facebook.fresco:animated-gif:1.5.0'

初始化和上面的一样,别忘注册
然后是布局

<com.facebook.drawee.view.SimpleDraweeView
        fresco:placeholderImage="@mipmap/ic_launcher"
        fresco:fadeDuration="5000"
        fresco:failureImage="@mipmap/ic_launcher"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:id="@+id/iv"/>

5000是多少秒后播放

最后是调用

        String s = list.get(position);
        Uri uri = Uri.parse(s);
        DraweeController draweeController = Fresco.newDraweeControllerBuilder()
                .setUri(uri)
                .setAutoPlayAnimations(true) // 设置加载图片完成后是否直接进行播放
                .build();
        myViewHolder.iv.setController(draweeController);

s是动图的网址

以上就是freco的简单的应用

你可能感兴趣的:(图片,android)