当前位置: 首页 > news >正文

EasyWindow - Android 悬浮窗框架

官网

https://github.com/getActivity/EasyWindow

项目介绍

本框架意在解决一些极端需求,如果是普通的 Toast 封装推荐使用 Toaster
集成步骤
  • 如果你的项目 Gradle 配置是在 7.0 以下,需要在 build.gradle 文件中加入
allprojects {repositories {// JitPack 远程仓库:https://jitpack.iomaven { url 'https://jitpack.io' }}
}
  • 如果你的 Gradle 配置是 7.0 及以上,则需要在 settings.gradle 文件中加入
dependencyResolutionManagement {repositories {// JitPack 远程仓库:https://jitpack.iomaven { url 'https://jitpack.io' }}
}
  • 配置完远程仓库后,在项目 app 模块下的 build.gradle 文件中加入远程依赖
android {// 支持 JDK 1.8compileOptions {targetCompatibility JavaVersion.VERSION_1_8sourceCompatibility JavaVersion.VERSION_1_8}
}dependencies {// 悬浮窗框架:https://github.com/getActivity/EasyWindowimplementation 'com.github.getActivity:EasyWindow:10.0'
}
使用案例
  • Java 用法
// 传入 Activity 对象表示设置成局部的,不需要有悬浮窗权限
// 传入 Application 对象表示设置成全局的,但需要有悬浮窗权限
new EasyWindow<>(this).setContentView(R.layout.toast_hint)// 设置成可拖拽的//.setDraggable()// 设置显示时长.setDuration(1000)// 设置动画样式//.setAnimStyle(android.R.style.Animation_Translucent)// 设置外层是否能被触摸//.setOutsideTouchable(false)// 设置窗口背景阴影强度//.setBackgroundDimAmount(0.5f).setImageDrawable(android.R.id.icon, R.mipmap.ic_dialog_tip_finish).setText(android.R.id.message, "点我消失").setOnClickListener(android.R.id.message, new EasyWindow.OnClickListener<TextView>() {@Overridepublic void onClick(EasyWindow toast, TextView view) {// 点击这个 View 后消失toast.cancel();// 跳转到某个Activity// toast.startActivity(intent);}}).show();
  • Kotlin 用法(二选一)
EasyWindow<EasyWindow<*>>(activity).apply {setContentView(R.layout.toast_hint)// 设置成可拖拽的//setDraggable()// 设置显示时长setDuration(1000)// 设置动画样式//setAnimStyle(android.R.style.Animation_Translucent)// 设置外层是否能被触摸//setOutsideTouchable(false)// 设置窗口背景阴影强度//setBackgroundDimAmount(0.5f)setImageDrawable(android.R.id.icon, R.mipmap.ic_dialog_tip_finish)setText(android.R.id.message, "点我消失")setOnClickListener(android.R.id.message, EasyWindow.OnClickListener<TextView?> { toast: EasyWindow<*>, view: TextView? ->// 点击这个 View 后消失toast.cancel()// 跳转到某个Activity// toast.startActivity(intent);})
}.show()
EasyWindow<EasyWindow<*>>(activity).setContentView(R.layout.toast_hint)// 设置成可拖拽的//.setDraggable()// 设置显示时长.setDuration(1000)// 设置动画样式//.setAnimStyle(android.R.style.Animation_Translucent)// 设置外层是否能被触摸//.setOutsideTouchable(false)// 设置窗口背景阴影强度//.setBackgroundDimAmount(0.5f).setImageDrawable(android.R.id.icon, R.mipmap.ic_dialog_tip_finish).setText(android.R.id.message, "点我消失").setOnClickListener(android.R.id.message, EasyWindow.OnClickListener<TextView?> { toast: EasyWindow<*>, view: TextView? ->// 点击这个 View 后消失toast.cancel()// 跳转到某个Activity// toast.startActivity(intent);}).show()
http://www.lryc.cn/news/175056.html

相关文章:

  • tp5连接多个数据库
  • SAP PO运维(一):系统概览异常处理
  • 安全厂商安恒信息加入龙蜥社区,完成 与 Anolis OS 兼容适配
  • maven找不到jar包
  • MySQL的数据目录
  • 详解MySQL索引+面试题
  • 设计模式:桥接器模式(C++实现)
  • 公网远程访问GeoServe Web管理界面【内网穿透】
  • AIMS医院手术麻醉信息系统全套源码,自主版权,开箱即用
  • 中秋特辑——3D动态礼盒贺卡(可监听鼠标移动)
  • Json文件序列化读取
  • ClickHouse(15)ClickHouse合并树MergeTree家族表引擎之GraphiteMergeTree详细解析
  • 面试题库(二):Java基础
  • Linux:无法接收组播数据
  • R语言贝叶斯非参数模型:密度估计、非参数化随机效应META分析心肌梗死数据...
  • 在gazebo仿真环境中加载多个机器人
  • 少有人走的路阅读笔记
  • 极简解析!IP计费的s5爬虫IP
  • 动静分离和前后端分离
  • 【SpringBoot】集成SpringSecurity+JWT实现多服务单点登录,原来这么easy
  • 手把手教你使用PLSQL远程连接Oracle数据库【内网穿透】
  • 浅谈Deep Learning 与 Machine Learning 与Artificial Intelligence
  • 和 Node.js 说拜拜,Deno零配置解决方案
  • AxureRP制作静态站点发布互联网,实现公网访问【内网穿透】
  • 【好文推荐】openGauss 5.0.0 数据库安全——全密态探究
  • 堆的介绍与堆的实现和调整
  • 【广州华锐互动】马属直肠检查3D虚拟仿真课件
  • Nuxt 菜鸟入门学习笔记:路由
  • C++基本语法和注释
  • CSRF攻击