栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android 悬浮窗的使用(1)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android 悬浮窗的使用(1)

悬浮窗功能基本代码:

		//创建悬浮窗的图片,这里当然也可以用自定义的View,这里之用了简单的图片
        var imageView = ImageView(this)
        imageView.setImageResource(R.mipmap.ic_launcher)

        var layoutParams = WindowManager.LayoutParams()
        var windowManager: WindowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManager
        
        layoutParams.format = PixelFormat.RGBA_8888
        layoutParams.flags =
            WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL or WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
        layoutParams.gravity = Gravity.TOP or Gravity.LEFT
        layoutParams.width = WindowManager.LayoutParams.WRAP_CONTENT
        layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT
        layoutParams.x = 200
        layoutParams.y = 200

        windowManager.addView(imageView, layoutParams)

如果有报错,那可能是没有设置悬浮窗的类型的原因。
只要在windowManager.addView 之前添加悬浮窗类型的代码即可

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION
        } else
            layoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT

当然,有的需求可能不太满足,比如说我想要在桌面也显示的话怎么办?
那就得需要用户自己到应用设置里面去打开后台弹出界面了。

		
		layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY

		var intent = Intent()
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
        //跳转到应用信息界面
        intent.action = Intent.ACTION_AUTO_REVOKE_PERMISSIONS
        //跳转到哪个应用的信息界面
        intent.data = Uri.fromParts("package", packageName, null)
        startActivity(intent)

悬浮窗暂时只写这么多,如果后面还有的话我还是会补充的。
有问题的话可直接评论。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/856936.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号