溫馨提示×

android懸浮窗實現(xiàn)的方法是什么

小億
86
2024-05-30 10:14:19
欄目: 編程語言

實現(xiàn)Android懸浮窗可以通過以下方法實現(xiàn):

  1. 使用WindowManager:通過WindowManager類來顯示一個懸浮窗口,可以通過添加View到WindowManager來實現(xiàn)。需要添加權(quán)限android.permission.SYSTEM_ALERT_WINDOW

  2. 使用Dialog:使用Dialog類創(chuàng)建一個懸浮窗口,并設置TYPE_SYSTEM_ALERT類型。需要添加權(quán)限android.permission.SYSTEM_ALERT_WINDOW

  3. 使用Toast:可以通過自定義Toast的View來實現(xiàn)一個懸浮窗口,需要設置Toast的顯示位置為Gravity.TOP | Gravity.LEFT

注意:在Android 8.0及以上版本中,需要通過懸浮窗口權(quán)限來顯示懸浮窗口,可以通過以下代碼請求權(quán)限:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && !Settings.canDrawOverlays(this)) {
    Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName()));
    startActivityForResult(intent, REQUEST_CODE_OVERLAY_PERMISSION);
}

然后在onActivityResult方法中處理權(quán)限請求結(jié)果:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_CODE_OVERLAY_PERMISSION) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && Settings.canDrawOverlays(this)) {
            // 顯示懸浮窗口
        } else {
            // 用戶拒絕了權(quán)限請求,處理邏輯
        }
    }
}

0