# wallpaperapp **Repository Path**: mengrunanke/wallpaperapp ## Basic Information - **Project Name**: wallpaperapp - **Description**: 壁纸app - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-20 - **Last Updated**: 2026-01-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WallpaperApp WallpaperApp 是一款功能强大的 Android 壁纸管理应用程序,支持多种壁纸来源和管理功能。 ## 应用介绍 本应用为用户提供完整的壁纸管理解决方案,支持从本地相册、USB存储、设备图库等来源导入壁纸,并提供实时预览、设置壁纸、屏保管理等核心功能。 ## 主要功能 ### 1. 壁纸浏览与管理 - **本地壁纸库**:扫描和管理设备上的所有图片壁纸 - **USB设备支持**:支持从USB存储设备导入壁纸 - **图库浏览**:内置壁纸资源库,提供多种精美壁纸选择 ### 2. 壁纸操作 - **实时预览**:点击壁纸可全屏预览效果 - **一键设置**:快速将选中的壁纸设置为桌面背景 - **屏保管理**:支持设置和管理屏保图片 - **多选操作**:支持批量选择和导入多张壁纸 ### 3. 图片管理功能 - **图片详情**:查看壁纸的分辨率、文件大小、修改时间等详细信息 - **图片分享**:支持将壁纸分享到其他应用 - **图片删除**:从列表中移除不需要的壁纸 - **重复检测**:自动检测并去除重复的壁纸文件 ### 4. 用户界面 - **Tab 导航**:通过 Tab 栏快速切换不同功能模块 - **网格视图**:以网格形式展示壁纸缩略图 - **水平滚动列表**:支持横向滚动的快速选择列表 - **圆角图片**:自定义圆角图片显示效果 ## 技术架构 ### 核心组件 - **Application**:自定义应用类 `AppAplication`,管理应用全局状态 - **MainActivity**:主界面控制器,采用 ViewPager + TabLayout 实现多页面切换 ### 碎片模块 (Fragment) | 模块 | 功能说明 | |------|----------| | `CurrentFragment` | 显示当前壁纸和屏保信息,支持预览和保存 | | `LocalFragment` / `LocalFragment2` | 本地图片扫描和管理,支持权限请求 | | `LibFragment` | 内置壁纸资源库浏览 | | `USBFragment` | USB存储设备壁纸扫描和管理 | ### 数据模型 - **WallpaperItem**:壁纸数据模型,包含图片路径、缩略图、选中状态等信息 ### 适配器 - **GridViewAdpater**:网格视图适配器 - **HorizontalAdapter**:水平滚动列表适配器,支持拖拽排序 - **WallpaperAdapter**:壁纸列表适配器,支持多选操作 ### 工具类 | 工具类 | 功能说明 | |--------|----------| | `WallpaperManager` | 壁纸设置和管理核心功能 | | `WallpaperUtils` | 壁纸相关工具方法 | | `ImageCache` | 图片内存缓存管理 | | `DataPersistenceUtil` | 数据持久化存储 | ## 项目结构 ``` app/src/main/java/com/incar/wallpaperapp/ ├── MainActivity.java # 主界面 ├── AppAplication.java # 应用类 ├── adapters/ # 适配器模块 │ ├── GridViewAdpater.java │ ├── HorizontalAdapter.java │ ├── OnItemClickSingleton.java │ └── WallpaperAdapter.java ├── fragments/ # 碎片模块 │ ├── CurrentFragment.java │ ├── Fragmentbase.java │ ├── LibFragment.java │ ├── LocalFragment.java │ ├── LocalFragment2.java │ └── USBFragment.java ├── helper/ # 辅助类 │ ├── ItemDragHelperCallback.java │ ├── OnDragVHListener.java │ └── OnItemMoveListener.java ├── models/ # 数据模型 │ └── WallpaperItem.java ├── utils/ # 工具类 │ ├── DataPersistenceUtil.java │ ├── ImageCache.java │ ├── WallpaperManager.java │ └── WallpaperUtils.java └── view/ # 自定义视图 └── RoundImageView.java ``` ## 环境要求 - Android Studio 4.0 或更高版本 - Android SDK 24 (Android 7.0) 或更高版本 - Gradle 7.0 或更高版本 ## 快速开始 1. **克隆项目** ```bash git clone https://gitee.com/mengrunanke/wallpaperapp.git ``` 2. **用 Android Studio 打开** - 选择 `File > Open` - 选择项目根目录下的 `build.gradle` 文件 3. **同步项目** - Android Studio 会自动下载依赖 - 等待同步完成 4. **运行项目** - 连接设备或启动模拟器 - 点击 `Run` 按钮运行应用 ## 使用说明 ### 1. 导入壁纸 - **从本地导入**:在"本地"Tab页点击添加按钮,可从相册或文件管理器选择图片 - **从USB导入**:插入USB设备后,在"USB"Tab页扫描并导入壁纸 - **批量导入**:支持同时选择多张图片进行批量导入 ### 2. 设置壁纸 - 点击任意壁纸缩略图进入预览模式 - 点击"设为壁纸"按钮应用壁纸 - 支持设置桌面壁纸和屏保壁纸 ### 3. 壁纸管理 - **选择操作**:长按可进入多选模式,批量选择壁纸 - **删除操作**:在壁纸列表中向左滑动或长按选择删除 - **详情查看**:点击壁纸可查看详细信息 ## 核心功能详解 ### WallpaperManager 壁纸管理核心类,提供以下功能: - 异步加载默认壁纸 - 生成壁纸缩略图 - 设置系统壁纸 - 清理壁纸缓存 ### 缓存策略 应用采用双重缓存策略: - **内存缓存**:使用 LruCache 存储最近使用的缩略图 - **文件缓存**:壁纸文件存储在应用私有目录 ### 权限管理 应用需要以下权限: - `READ_EXTERNAL_STORAGE`:读取外部存储图片 - `WRITE_EXTERNAL_STORAGE`:写入壁纸文件(Android 10以下) ## 测试 项目包含以下测试: - **单元测试**:`ExampleUnitTest.java` - 基本单元测试 - **仪器测试**:`ExampleInstrumentedTest.java` - Android 仪器测试 运行测试: ```bash ./gradlew test ``` ## 构建 生成 Release APK: ```bash ./gradlew assembleRelease ``` APK 文件位置:`app/build/outputs/apk/release/` ## 贡献指南 1. Fork 本项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建 Pull Request ## 许可证 本项目采用 Apache License 2.0 许可证。 ## 联系方式 - 项目地址:https://gitee.com/mengrunanke/wallpaperapp - 问题反馈:请在 Gitee Issues 中提交 ## 感谢 感谢所有为这个项目做出贡献的开发者!