您的位置:首页 > 其它

Fresco的简单使用与控制GIF图片播放与停止

2018-03-07 21:21 246 查看
都说Fresco是史上最厉害的图片框架,我也来学习一下。
要使用Fresco首先我们需要导入依赖  compile 'com.facebook.fresco:fresco:0.12.0'
compile 'com.facebook.fresco:animated-base-support:0.12.0' // 在 API < 14 上的机器支持 WebP 时,需要添加
compile 'com.facebook.fresco:animated-gif:0.12.0' // 支持 GIF 动图,需要添加
// 支持 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,那么步骤很简单public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
Fresco.initialize(this);
}
}之后在清单文件中注册这个类。
看XML<Button
android:id="@+id/btn"
android:text="点击开始或者停止加载图片"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

<com.facebook.drawee.view.SimpleDraweeView
fresco:placeholderImage="@drawable/ic_launcher_background"
android:id="@+id/simpleDraweeView"
android:layout_width="150dp"
android:layout_height="150dp" />记住要加入命名空间
xmlns:fresco="http://schemas.android.com/apk/res-auto"
之后我如果要简单的加载一个网络图片的话只需要 Uri parse = Uri.parse(url);
simpleDraweeView.setImageURI(parse);那么如果我们想要加载一个动态图片并且可以通过一个按钮动态的控制GIF图片的加载与暂停,那么我们需要通过BaseControllerListener类来控制。
在这里我通过自己定义一个布尔值来记录图片的播放与暂停。看代码:
private boolean auto = true;//默认播放
BaseControllerListener<ImageInfo> listener = new BaseControllerListener<ImageInfo>() {
@Override
public void onFinalImageSet(String id, @Nullable ImageInfo imageInfo, @Nullable Animatable animatable) {
if (animatable != null && auto) {
animatable.start();
}
}
};
        
controller = Fresco.newDraweeControllerBuilder()
.setUri(Uri.parse(gif_url))
.setControllerListener(listener)
.build();

simpleDraweeView.setController(controller);

btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
auto = !auto;//点击按钮状态值改变
Animatable animatable = simpleDraweeView.getController().getAnimatable();
if (animatable != null && auto){//通过状态来控制播放暂停
animatable.start();
}else {
animatable.stop();
}
}
});
这是是本人初步学习Fresco,有不好的地方请不要在意。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: