EasyWindow - Android 悬浮窗框架

官网

https://github.com/getActivity/EasyWindow

项目介绍

本框架意在解决一些极端需求,如果是普通的 Toast 封装推荐使用 Toaster
集成步骤
  • 如果你的项目 Gradle 配置是在 7.0 以下,需要在 build.gradle 文件中加入

    allprojects {
    repositories {
    // JitPack 远程仓库:https://jitpack.io
    maven { url 'https://jitpack.io' }
    }
    }

  • 如果你的 Gradle 配置是 7.0 及以上,则需要在 settings.gradle 文件中加入

    dependencyResolutionManagement {
    repositories {
    // JitPack 远程仓库:https://jitpack.io
    maven { url 'https://jitpack.io' }
    }
    }

  • 配置完远程仓库后,在项目 app 模块下的 build.gradle 文件中加入远程依赖

    android {
    // 支持 JDK 1.8
    compileOptions {
    targetCompatibility JavaVersion.VERSION_1_8
    sourceCompatibility JavaVersion.VERSION_1_8
    }
    }

    dependencies {
    // 悬浮窗框架:https://github.com/getActivity/EasyWindow
    implementation '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>() {

    复制代码
              @Override
              public 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()

相关推荐
每次的天空5 小时前
Android学习总结之算法篇四(字符串)
android·学习·算法
x-cmd7 小时前
[250331] Paozhu 发布 1.9.0:C++ Web 框架,比肩脚本语言 | DeaDBeeF 播放器发布 1.10.0
android·linux·开发语言·c++·web·音乐播放器·脚本语言
tangweiguo0305198710 小时前
Android BottomNavigationView 完全自定义指南:图标、文字颜色与选中状态
android
遥不可及zzz11 小时前
Android 应用程序包的 adb 命令
android·adb
无知的前端11 小时前
Flutter 一文精通Isolate,使用场景以及示例
android·flutter·性能优化
_一条咸鱼_11 小时前
Android Compose 入门之字符串与本地化深入剖析(五十三)
android
ModestCoder_12 小时前
将一个新的机器人模型导入最新版isaacLab进行训练(以unitree H1_2为例)
android·java·机器人
robin_suli13 小时前
Spring事务的传播机制
android·java·spring
鸿蒙布道师13 小时前
鸿蒙NEXT开发对象工具类(TS)
android·ios·华为·harmonyos·arkts·鸿蒙系统·huawei
Harrison_zhu14 小时前
Ubuntu18.04 编译 Android7.1代码报错
android