一、使用的是Fresco的三方库
官网文档:https://www.fresco-cn.org/docs/progress-bars.html
二、支持播放GIF
这里只是介绍支持播放GIF的功能,所以步骤也都是GIF的步骤
1.引入Fresco
为了支持获取GIF播放一遍的时长,就要引入0.13.0以后的版本,但是0.14.0改变了android studio的分包机制,可能会导致编译问题,所以还是选择0.13.0版本。
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.facebook.fresco:fresco:0.13.0'
compile 'com.facebook.fresco:animated-gif:0.13.0'
}
我这里实现了在整个屏幕上添加一个GIF view
2.获取root view
private static ViewGroup getRootGroup(Activity activity) {
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {
return (ViewGroup) activity.findViewById(android.R.id.content);
} else {
return (ViewGroup) activity.getWindow().getDecorView().getRootView();
}
}
上面获取rootview
3.new一个SimpleDraweeView(com.facebook.drawee.view.SimpleDraweeView)
SimpleDraweeView gifView = (SimpleDraweeView) activity.findViewById(R.id.gif_tip_view);
if (gifView == null) {
gifView = new SimpleDraweeView(activity);
gifView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
//触摸之后的事件不往后传递
return true;
}
});
gifView.setPadding(0, MySystemUtil.getStatusBarHeight(activity), 0, 0);
// GIF图片填充XY轴
gifView.getHierarchy().setActual