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.hqwc.cn/news/120571.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SR800-D 5G工业路由器:将无人驾驶汽车的通信能力提升到极限

​大家好&#xff01;欢迎来到今天星创易联的课堂&#xff0c;我是你们的通信老师&#xff0c;今天我们将讨论无人驾驶解决方案&#xff0c;其中包括SR800-D 5G工业路由器的运用。 首先&#xff0c;让我们聚焦于无人驾驶技术的重要性。无人驾驶汽车正在迅速崛起&#xff0c;这种…

多线程总结(线程池 线程安全 常见锁)

本篇文章主要是对线程池进行详解。同时引出了单例模式的线程池&#xff0c;也对线程安全问题进行了解释。其中包含了智能指针、STL容器、饿汉模式的线程安全。也对常见的锁&#xff1a;悲观锁&#xff08;Pessimistic Locking&#xff09;、乐观锁&#xff08;Optimistic Locki…

B058-SpringBoot

目录 springboot概念与作用入门案例springboot运行方式热部署配置文件Profile多环境支持整合测试-springboot-testSpringboot-web1.返回json数据2.返回页面&#xff08;模板技术&#xff09;thymeleaf1.导入thymeleaf依赖2.模板文件3.controller4.启动类 SSM整合1.导包2.项目目…

私有继承和虚函数私有化能用么?

源起 以前就知道private私有化声明关键字&#xff0c;和virtual虚函数关键字两者并不冲突&#xff0c;可以同时使用。 但是&#xff0c;它所表示的场景没有那么明晰&#xff0c;也觉得难以理解&#xff0c;直到近段时间遇到一个具体场景。 场景 借助ACE遇到的问题进行展示 …

蓝桥杯 题库 简单 每日十题 day12

01 列名 问题描述 在Excel中&#xff0c;列的名称使用英文字母的组合。前26列用一个字母&#xff0c;依 次为A到Z&#xff0c;接下来2626列使用两个字母的组合&#xff0c;依次为AA到zz. 请问第2022列的名称是什么&#xff1f; 答案提交 这是一道结果填空的题&#xff0c;你只…

【再识C进阶3(下)】详细地认识字符分类函数,字符转换函数和内存函数

前言 &#x1f493;作者简介&#xff1a; 加油&#xff0c;旭杏&#xff0c;目前大二&#xff0c;正在学习C&#xff0c;数据结构等&#x1f440; &#x1f493;作者主页&#xff1a;加油&#xff0c;旭杏的主页&#x1f440; ⏩本文收录在&#xff1a;再识C进阶的专栏&#x1…

设计模式3、工厂方法模式 Factory Method

解释说明&#xff1a;定义一个用于创建对象的接口&#xff0c;但是让子类决定将哪一个类实例化。工厂方法模式让一个类的实例化延迟到其子类 抽象工厂&#xff08;AbstractFactory&#xff09;&#xff1a;提供了创建产品的接口&#xff0c;调用者通过它访问具体工厂的工厂方法…

HTML5中使用video标签

参考链接 <videocontrolscontrolslist"nodownload noplaybackrate"disablePictureInPicture"true"disableRemotePlayback"true"src"https://www.runoob.com/try/demo_source/movie.mp4"></video>隐藏下载&#xff1a;nod…

ubuntu apt工具软件操作

apt工具 -----> 网关 国内网络(仓库源) 美国网络(仓库源)/etc/apt/sources.list https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/sudo apt-get update sudo apt install sl 安装包 sudo apt-cache show sl 查看包信…

ubuntu 开启笔记本摄像头并修复画面颠倒问题

文章目录 基本环境状况&#xff1a; 没找到摄像头检查 opencv检查系统应用 键盘右侧&#xff0c;硬件层面开启摄像头画面镜像问题 基本环境 笔记本&#xff1a; 联想拯救者 系统&#xff1a; ubuntu 22.04 状况&#xff1a; 没找到摄像头 检查 opencv 使用 cv::VideoCaptu…

ESP8266 WiFi物联网智能插座—项目简介

目录 1、项目背景 2、设备节点功能 3、上位机功能 物联网虽然能够使家居设备和系统实现自动化、智能化管理&#xff0c;但是依然需要依靠更为先进的终端插座作为根本保障&#xff0c;插座是所有家用电器需要使用的电源设备&#xff0c;插座的有序智能管理&#xff0c;对于实…

sub0 里斯本精彩回顾:探索波卡区块的创新空间

sub0 Europe 2023 已在葡萄牙里斯本圆满结束&#xff01;sub0 大会是波卡生态开发者大会&#xff0c;由波卡协议的主要开发方 Parity Technologies 举办的开发者大会&#xff0c;汇聚了全球 Substrate 开发者和学习者&#xff0c;旨在为 Polkadot 和 Kusama 生态的开发者、贡献…