腾讯管家之小火箭的实现:
腾讯管家在桌面任何时候都有一个小火箭提供给用户进行清理垃圾,这个小火箭只是一个悬浮窗,需要用到WindowManager系统服务,这个接口可以添加view到屏幕,也可以从屏幕删除view。它面向的对象一端是屏幕,另一端就是View。今天就是用WindowManager实现小火箭飞天案列。
腾讯管家的小火箭显示在桌面上,那是一个服务进程,首先创建一个服务,在activity中开启服务后,然后在服务中初始化小火箭。火箭升天的那一瞬间其实是启动了一个activity,只不过该activity是透明的,所有用户不可见,首先拿到系统服务WindowManager,然后加载火箭view
<span style="font-size:14px;"> private WindowManager.LayoutParams params;
private int winWidth;
private int winHeight;
private WindowManager mWM;
private View view;
@Override
public void onCreate() {
super.onCreate();
mWM = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
// 获取屏幕宽高
winWidth = mWM.getDefaultDisplay().getWidth();
winHeight = mWM.getDefaultDisplay().getHeight();
params = new WindowManager.LayoutParams();
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
params.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_