Skip to content

Rprop/Yier

Repository files navigation

一二布布 (Yier)

一款 Android 桌面悬浮窗应用,在屏幕上层播放 GIF 动画,支持拖拽、手动/自动切换角色动画。

功能特性

  • 悬浮窗动画 — 在其他应用之上显示透明 GIF 动画窗口
  • 多角色选择 — 支持库洛米、一二、布布及同框动画,可多选组合
  • 缩放调节 — 通过 SeekBar 实时调整悬浮窗大小
  • 轮播模式 — 可开启自动随机切换,并设置轮播间隔(秒)
  • 手势交互
    • 拖拽:移动悬浮窗位置(位置自动保存)
    • 单击:手动切换下一张动画
    • 长按(> 0.5s):打开设置界面

技术栈

项目 版本 / 说明
语言 Java 21
minSdk 28 (Android 9)
targetSdk 35
compileSdk 36
Android Gradle Plugin 8.13.2
Gradle 9.5.1
主要依赖 AndroidX AppCompat、Preference、Material、HiddenApiBypass

项目结构

Yier/
├── build.gradle              # 根构建脚本
├── settings.gradle           # 模块配置(仅 :yier)
├── gradle.properties         # Gradle / AndroidX 全局配置
└── yier/                     # 主应用模块
    ├── build.gradle
    ├── sign.jks              # 签名密钥(本地)
    ├── src/main/
    │   ├── AndroidManifest.xml
    │   ├── assets/
    │   │   └── assets.zip    # GIF 资源包
    │   ├── java/rp/yier/
    │   │   ├── SettingsActivity.java   # 设置页 & 悬浮窗管理
    │   │   └── GIFView.java              # GIF 渲染 View
    │   └── res/                          # 布局、偏好设置、图标等
    └── proguard-rules.pro

核心实现

GIFView

自定义 View,基于 ImageDecoder + AnimatedImageDrawable 播放 GIF,使用硬件加速层渲染,支持等比缩放与无限循环。

资源加载 (GIFHolder)

启动时从 assets/assets.zip 解压 GIF 资源,按目录前缀分类:

前缀 角色
k/ 库洛米
y/ 一二
x/ 布布
m/ 一二与布布同框

资源通过 mmap 映射到内存,配合 DirectByteBuffer 反射构造,降低大量 GIF 加载时的内存开销。

悬浮窗

使用 WindowManager + TYPE_APPLICATION_OVERLAY 创建不可聚焦的透明悬浮窗,需用户授予「显示在其他应用上层」权限(SYSTEM_ALERT_WINDOW)。

环境要求

  • JDK 21
  • Android SDK(compileSdk 36、Build Tools 36.1.0)
  • Android NDK 29.0.14206865(已在 build.gradle 中指定)

构建与运行

# Debug 包
./gradlew assembleDebug

# Release 包(启用 ProGuard 混淆)
./gradlew assembleRelease

Windows 下可使用:

gradlew.bat assembleDebug

构建产物位于 yier/build/outputs/apk/

签名配置位于 yier/build.gradlesigningConfigs,使用模块目录下的 sign.jks。首次构建前请确认密钥文件存在。

权限说明

权限 用途
SYSTEM_ALERT_WINDOW 创建桌面悬浮窗

首次启动时,若未授权悬浮窗权限,应用会自动跳转至系统设置页请求授权。

设置项

选项 说明
开启动画 显示 / 隐藏悬浮窗
缩放比例 调整悬浮窗尺寸(默认 50 为基准)
轮播动画 开启后按间隔自动随机切换
轮播间隔 自动切换的时间间隔(秒)
动画选择 多选要展示的角色类型

许可证

未指定开源许可证。使用前请确认 GIF 素材及相关角色的版权归属。

About

Toy

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages