Android中的懸浮框
懸浮窗其實在移動平臺的使用中會經常的遇到,無論是系統自帶的懸浮窗,還是影片軟體的退出時出現的懸浮窗,無論是聊天軟體的通話懸浮窗,還是各大管家軟體為了清理後臺的懸浮窗,都會經常性的出現在我們的生活使用當中
而其實,寫一個懸浮窗也是一件不難的事情
首先,我們需要判斷申請了相關的許可權
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
然後在程式碼中需要判斷,使用者是否給予了我們的軟體相關的許可權
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (!Settings.canDrawOverlays(this)) { Toast.makeText(this, "暫無懸浮窗許可權,請授權", Toast.LENGTH_SHORT) GlobalDialogSingle( this, "", "請開啟懸浮窗許可權", "去開啟" ) { dialog, which -> dialog.dismiss() startActivityForResult( Intent( Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:$packageName") ), 0 ) }.show() } else { moveTaskToBack(true)//讓程式退往後臺,讓懸浮窗進入前臺 val intent = Intent(this@MainActivity, FloatServices::class.java) hasBind = bindService(intent, ServiceCon, BIND_AUTO_CREATE) } }
而FloatServices需要繼承service,並在其中處理懸浮窗的各種事件和顯示處理
@Nullable @Override public IBinder onBind(Intent intent) { showWindow();//懸浮窗顯示事件 ClickFloat();//處理點選事件 return new MyBinder(); }
懸浮窗相關引數
private void showWindow() { winManager = (WindowManager) getApplication().getSystemService(Context); wmParams = getParams(); wmParams.gravity = Gravity.RIGHT| Gravity.TOP; wmParams.x = winManager.getDefaultDisplay().getWidth(); wmParams.y = 500; inflater = LayoutInflater.from(getApplicationContext()); mFloatingLayout = inflater.inflate(R.layout.remoteview, null); winManager.addView(mFloatingLayout, wmParams); }
點選事件
private void ClickFloat() { //在這其中處理懸浮窗的點選或者移動事件 }
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2732595/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android懸浮框的實現Android
- Android懸浮框的適配問題Android
- Android通過WindowManager實現懸浮框Android
- Android 懸浮窗Android
- Android懸浮窗的學習Android
- 懸浮窗的一種實現 | Android懸浮窗Window應用Android
- Android:會呼吸的懸浮氣泡Android
- Android 懸浮窗 System Alert WindowAndroid
- Android仿微信文章懸浮窗效果Android
- Android 攝像頭預覽懸浮窗Android
- 【轉載】使用WindowManage實現Android懸浮窗Android
- Android 輔助許可權與懸浮窗Android
- [轉]Android輕鬆實現RecyclerView懸浮條AndroidView
- vivo系統無許可權開啟懸浮框的問題
- Android RecyclerView實現頭部懸浮吸頂效果AndroidView
- JS錯誤記錄 – 右側懸浮框 – 緩衝運動JS
- dataTable.js使用總結(包含序號生成,懸浮框使用等)JS
- ALaunch 0.8 := 懸浮提示
- 下沉式通知的一種實現 | Android懸浮窗Window應用Android
- 底部導航欄懸浮效果
- css做個波浪懸浮球?CSS
- jQuery滑鼠懸浮翻牌效果詳解jQuery
- jQuery滑鼠懸浮聚焦效果詳解jQuery
- css滑鼠懸浮下拉選單效果CSS
- 滑鼠懸浮圖片旋轉效果
- 滑鼠懸浮tr行高亮變色
- Android 商品詳情頁懸浮效果以及沉浸式狀態列,無衝突Android
- 直播平臺製作,Android 懸浮窗延時5秒返回APP問題AndroidAPP
- 小米 TYPE_TOAST 懸浮窗無效的原因AST
- vivo NEX雙屏版怎麼設定懸浮球功能?vivo NEX雙屏版懸浮球的開啟方法
- QPM 之懸浮窗設定資訊
- QPM 之懸浮窗助力效能優化優化
- 滑鼠懸浮div實現旋轉效果
- 滑鼠懸浮div動畫改變尺寸動畫
- 滑鼠懸浮連結動畫高亮效果動畫
- 滑鼠懸浮電風扇旋轉效果
- CSS3滑鼠懸浮元素放大效果CSSS3
- iOS:高仿微信文章懸浮球iOS