Android 使用懸浮視窗
来源:互联网 发布:真的有迷你猪吗 知乎 编辑:程序博客网 时间:2024/05/17 14:17
1. 在Activity 啟動 Service
startService(new Intent(this, FloatingShortcutService.class));<service android:name="com.yenhsun.floatingshortcut.FloatingShortcutService" />
2. 加入 permission
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
3. 設定 params
public WindowManager.LayoutParams getDefaultWindowManagerParamsSettings() { WindowManager.LayoutParams params = new WindowManager.LayoutParams(); params.x = 0; params.y = 0; params.height = 500; params.width = 500; params.type = LayoutParams.TYPE_PHONE; params.format = PixelFormat.RGBA_8888; params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED | WindowManager.LayoutParams.FLAG_LAYOUT_INSET_DECOR | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM; params.gravity = Gravity.LEFT | Gravity.TOP; params.windowAnimations = android.R.style.Animation_Toast; //僅可以使用系統內的動畫種類 params.softInputMode = WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN; return params; }
4. 使用windowManager.addView
private WindowManager wm;wm = (WindowManager)mContext.getSystemService("window");View mFloating = new View(mContext);wm.addView(mFloating, wmParams);
5. 記得最後要 remove
wm.removeView(mFloating);
簡單的說,就是使用一個Service 加入一個 view 到 windowmanager 內,就可以在螢幕上看到你所加入的視窗,
只要Service 一直存在系統中,就可以一直控制這個 View。
但是 backaground Service 常常因為內存的關係所以被系統 kill ,如果設定成 foreground service 又會看到 notification icon,這該如何是好呢?
有個小方法,就是把 notification 顯示的時間設定成最大 (ex 999999) ,並且把 priority 設成最小 (ex Notification.PRIORITY_MIN)
就可以幾乎看不到 notification 但是又是 foreground service!
- Android 使用懸浮視窗
- Android使用
- Android使用
- Android使用
- 【android】 android studio使用
- android使用keytools使用
- 【Android】Android LogCat使用详解
- 【Android】Android LogCat使用详解
- Android:Android Fragments 详细使用
- android布局 android:Theme使用
- #android#android studio 使用cardview
- 【android】:android之使用Intent
- 【Android】Android对话框的使用
- 【Android】android Fragment的使用
- 【Android】Android SurfaceView使用详解
- Android进阶---android databinding 使用
- android:Android中pullToRefresh使用
- Android WebView使用【初级使用】
- Tabhost中子Activity跳转到新的activity,从该activity重新返回子Activity问题解决
- 附文:伤逝在文学中
- 高通Android平台硬件调试之Camera篇
- [版本构造]ASProtect初探---软件防护系列学习笔记
- 比赛正式开始的openeim001
- Android 使用懸浮視窗
- 30分钟后的飞鸽传书
- 小学生玩ACM----栈和队列
- hdu2049 错排+组合问题
- Camera sensor驱动
- IT从业人员必看的10个论坛
- 无聊说说 strong VS weak
- 总线协议类---USB
- mac 下为sublime text安装ctags