-
Notifications
You must be signed in to change notification settings - Fork 437
Window Play
框架提供者两种window组件,一种是可以直接用于播放的WindowVideoView,一种是window视图FloatWindow。
window组件的设置参数均被封装到FloatWindowParams中,包含了以下参数:
- windowType
默认为WindowManager.LayoutParams.TYPE_TOAST,测试发现TYPE_TOAST类型的window在一些手机上被禁止了(可能是由于这种类型的window不需要权限),使用时可以将windowType设置为WindowManager.LayoutParams.TYPE_SYSTEM_ALERT。但是由于window权限不属于运行时权限,所以需要用户手动开启悬浮窗权限(测试发现华为P9手机默认是可以弹悬浮窗的,不需要手动处理)。
- gravity
window出现的方位。默认gravity为Gravity.TOP | Gravity.LEFT
- format
像素格式。默认为PixelFormat.RGBA_8888
- flag
window的标记参数。默认为WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
- x和y
window的精确显示位置,默认为0,0
- width和height
window的宽高,默认为WindowManager.LayoutParams.WRAP_CONTENT
- defaultAnimation
是否开启默认window显示隐藏动画,默认开启。
继承自BaseVideoView,区别就在于WindowVideoView是以window的形式显示。默认的window窗体可以拖动,您可以设置禁止拖动。
------------------------------------------------------------
//设置window监听器,用于监听window的显示和隐藏
void setOnWindowListener(OnWindowListener onWindowListener);
------------------------------------------------------------
//设置window是否可以拖拽,默认开启
void setDragEnable(boolean dragEnable);
------------------------------------------------------------
//window是否显示了
boolean isWindowShow();
------------------------------------------------------------
//更新window的位置
void updateWindowViewLayout(int x, int y);
------------------------------------------------------------
//显示window,默认开启显示动画(您可以通过FloatWindowParams进行关闭)
boolean show();
------------------------------------------------------------
//显示window,您可以传入指定的显示动画
boolean show(Animator... items);
------------------------------------------------------------
//关闭window
void close();
------------------------------------------------------------
//关闭window,您可以传入指定的关闭动画
void close(Animator... items);
------------------------------------------------------------
FloatWindow是框架提供的window显示视图组件,不具备播放能力。是继承自FrameLayout以window形式显示的View,您可以通过构造函数传入指定的布局放置其内。
与上面WindowVideoView中的方法一致。