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.mzph.cn/news/87215.shtml

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

相关文章

【C++面向对象侯捷】8.栈,堆和内存管理

文章目录 栈&#xff0c;堆stack object的生命周期static local object的生命周期global object的生命周期heap objects 的生命期new&#xff1a;先分配memory&#xff0c;再调用构造函数delete: 先调用析构函数&#xff0c;再释放 memory动态分配所得的内存块&#xff0c;in V…

腾讯mini项目-【指标监控服务重构】2023-08-25

今日已办 traefik proxy jaeger Prometheus prometheus | Prometheus 配置完依然无法实现 web-url的前缀访问【待解决】 Set span storage type : elasticsearch services:elasticsearch:image: elasticsearch:7.17.12container_name: elasticsearchnetworks:- backend # …

超好用的接口自动化框架,lemon-easytest内测版发布,赶紧用起来~

easytest easytest 是一个接口自动化框架。 功能特点&#xff1a; 支持 http 接口测试 支持 json&#xff0c;html,xml 格式的响应断言 支持数据库断言 支持用例标记筛选 支持用例失败重运行 支持多线程 安装 pip install lemon_easytest 快速使用 不需要写任何代码…

postgresql|数据库|centos7下基于postgresql-12的主从复制的pgpool-4.4的部署和使用

前言&#xff1a; postgresql数据库只用自身的一些配置是无法做到最优的优化的&#xff0c;需要通过一些外置插件&#xff08;中间件&#xff09;来提高服务器的整体性能&#xff0c;通俗的说就是数据库仅仅依靠自身是无法达到性能最优的&#xff0c;很多时候需要更改数据库的…

Java内存模型介绍

文章目录 Java内存模型前言Java内存模型基本介绍指令重排相关概念主存和本地内存相关介绍JMM中的8种同步规则和8种同步操作happens-before 原则内存屏障总结 Java内存模型 前言 本文主要介绍一下JMM中的一些常见概念&#xff0c;通过本文让你能够快速的对JMM有一个大致的了解 …

【Java】基于物联网技术的智慧工地源码(项目端、监管端、APP端、智慧大屏)

智慧工地是将云计算、大数据、物联网、移动技术和智能设备等信息化技术手段&#xff0c;聚集在建筑工地施工管理现场&#xff0c;围绕人员、机械、物料、环境等关键要素&#xff0c;建立智能信息采集、高效协同管理、数据科学分析、过程智慧预测&#xff0c;最终实现建筑工地的…

2023/9/20 -- C++/QT

时钟: widget.h: #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPainter> #include <QPaintEvent> #include <QDateTime> #include <QLabel> #include <QTimer> #include <QDebug>QT_BEGIN_NAMESPACE namespac…

CSS复习之选择器

目录 一、常用选择器 1.1元素选择器 1.2id选择器 1.3class选择器 二、复合选择器 2.1交集选择器 2.2并集选择器 三、关系选择器 3.1子元素选择器 3.2后代选择器 3.3兄弟选择器 四、属性选择器 五、伪类选择器 六、伪元素的选择器 七、超链接的伪类 一、常用选择器…

【ArcGIS】土地利用变化分析详解(矢量篇)

土地利用变化分析详解-矢量篇 土地利用类型分类1 统计不同土地利用类型的面积/占比1.1 操作步骤Step1&#xff1a;Step2&#xff1a;计算面积Step3&#xff1a;计算占比 2 统计不同区域各类土地利用类型的面积2.1 操作步骤 3 土地利用变化转移矩阵3.1 研究思路3.2 操作步骤 4 分…

【卖出备兑看涨期权策略(Covered_call)】

卖出备兑看涨期权策略&#xff08;Covered_call&#xff09; 卖出备兑看涨期权策略是一种最基本的收入策略&#xff0c;该策略主要操作就是在持有标的资产的同时卖出对应的看涨期权合约&#xff0c;以此来作为从持有的标的资产中获取租金的一种方法。如果标的资产的价格上涨到…

UE5 虚幻引擎 如何使用构造脚本(Construction Script)? 构造脚本的奥秘!

目录 1 构造脚本&#xff08;Construction Script&#xff09;1.1 介绍1.2 案例1&#xff1a;利用样条组件程序化生成树木1.2 案例2&#xff1a;利用样条组件和样条网格体组件程序化生成道路 1 构造脚本&#xff08;Construction Script&#xff09; 1.1 介绍 问题&#xff1a…

web:[ACTF2020 新生赛]Include

前提知识 文件包含漏洞 php伪协议 题目 点开题目&#xff0c;页面只显示一个tips&#xff0c;点进去看看 点进去之后 没有别的提示&#xff0c;先看源代码&#xff0c;恩&#xff0c;什么都没有 再看一下点进tips显示的页面&#xff0c;发现url中 flag可能就藏在这个页面中&…

漫谈:C语言 C++ 左值、右值、类型转换

编程不是自然语言&#xff0c;编程自有其内在逻辑。 左值引起的BUG 编译器经常给出类似这样的BUG提示&#xff1a; “表达式必须是可修改的左值” “非常量引用的初始值必须是左值” 看一下示例&#xff1a; #include <iostream>void f(int& x) {} int main() {sho…

LLM各层参数详细分析(以LLaMA为例)

网上大多分析LLM参数的文章都比较粗粒度&#xff0c;对于LLM的精确部署不太友好&#xff0c;在这里记录一下分析LLM参数的过程。 首先看QKV。先上transformer原文 也就是说&#xff0c;当h&#xff08;heads&#xff09; 1时&#xff0c;在默认情况下&#xff0c; W i Q W_i^…

实在智能携手40+央企,探索财务大模型及数智化实践与应用

“这次培训给我一个最大的感触就是&#xff0c;过去以为AI智能化、大模型技术是很高深的事情。但现在&#xff0c;我们通过RPA等数字化工具&#xff0c;自主根据自己的工作岗位&#xff0c;完成业务自动化流程的开发和设计。AI技术没有想象中的那么难入门。” 这是一位参加了“…

持续集成Jenkins安装部署

Jenkins是一个在DevOps领域中、支持CI/CD&#xff08;持续集成/持续交付&#xff09;过程域的开源项目&#xff0c;其提供可扩展插件的支持&#xff0c;以自动化的机制对项目工程执行打包、编译、构建、测试以及最终发布到目的地服务器并成功部署运行&#xff0c;本文主要描述J…

如何在批发零售业运用IPD?

批发零售业指购进商品后&#xff0c;再向其他批发或零售单位&#xff08;含个体经营者&#xff09;及其他企事业单位、机关团体等批量销售生活用品、生产资料的活动&#xff0c;以及从事进出口贸易和贸易经纪与代理的活动&#xff0c;包括拥有货物所有权&#xff0c;并以本单位…

左神高级提升班2 约瑟夫环结构

目录 【案例1】 【题目描述】 【输入描述&#xff1a;】 【输出描述&#xff1a;】 【输入】 【输出】 【思路解析】 【代码实现】 【案例1】 【题目描述】 某公司招聘&#xff0c;有n个人入围&#xff0c;HR在黑板上依次写下m个正整数A1、A2、……、Am&#xff0c;然后…

如何在JoySSL上申请免费的SSL证书

1&#xff0c;前往 JoySSL 的官方网站注册页面&#xff0c;创建一个账号并登录您的 JoySSL 账户。 扫码注册账号申请免费证书https://www.joyssl.com/certificate/select/free.html?nid52&#xff0c;找到并选择你需要的 SSL 证书相关的功能或选项。 3&#xff0c;提供您的域…

springboot实现发送邮箱验证码

准备工作 在邮箱官网开放SMTP授权&#xff0c;获取相应密钥&#xff0c;才可以进行发送邮件 这里以网易163邮箱为例&#xff0c;登录邮箱后&#xff0c;依次点击“设置-POP3/SMTP/IMAP” &#xff0c;然后开启SMTP服务。这时候会提示一个授权码&#xff0c;例如&#xff1a;H…