通用的桌面悬浮窗口的实现

    现在很多安全类的软件,比如360手机助手,百度手机助手等等,都有一个悬浮窗,可以飘浮在桌面上,方便用户使用一些常用的操作。今天这篇文章,就是介绍如何实现桌面悬浮窗效果的。

    首先,看一下效果图。

    最关键的就是红框内的四个类。

    首先,FloatWindowService是一个后台的服务类,主要负责在后台不断的刷新桌面上的小悬浮窗口,否则会导致更换界面之后,悬浮窗口也会随之消失,因此需要不断的刷新。下面是实现代码。

[java]  view plain copy

  1. package com.qust.floatwindow;  
  2.   
  3. import java.util.Timer;  
  4. import java.util.TimerTask;  
  5.   
  6. import android.app.Service;  
  7. import android.content.Context;  
  8. import android.content.Intent;  
  9. import android.os.Handler;  
  10. import android.os.IBinder;  
  11.   
  12. /** 
  13.  * 悬浮窗后台服务 
  14.  *  
  15.  * @author zhaokaiqiang 
  16.  *  
  17.  */  
  18.   
  19. public class FloatWindowService extends Service {  
  20.   
  21.     public static final String LAYOUT_RES_ID = “layoutResId”;  
  22.     public static final String ROOT_LAYOUT_ID = “rootLayoutId”;  
  23.   
  24.     // 用于在线程中创建/移除/更新悬浮窗  
  25.     private Handler handler = new Handler();  
  26.     private Context context;  
  27.     private Timer timer;  
  28.     // 小窗口布局资源id  
  29.     private int layoutResId;  
  30.     // 布局根布局id  
  31.     private int rootLayoutId;  
  32.   
  33.     @Override  
  34.     public int onStartCommand(Intent intent, int flags, int startId) {  
  35.   
  36.         context = this;  
  37.         layoutResId = intent.getIntExtra(LAYOUT_RES_ID, 0);  
  38.         rootLayoutId = intent.getIntExtra(ROOT_LAYOUT_ID, 0);  
  39.   
  40.         if

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年3月6日
下一篇 2015年3月6日

相关推荐