# smbpics **Repository Path**: shiter007/smbpics ## Basic Information - **Project Name**: smbpics - **Description**: android tv smb show pics by cc & trae & qoder,also fits AR glasses or other big/large/huge screens. - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-25 - **Last Updated**: 2025-10-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SMB图片查看器 (SMB Pics Viewer) 一个专为Android TV和移动设备设计的SMB网络共享图片浏览应用。通过SMB协议连接网络共享文件夹,以双图模式或网格浏览模式查看图片。支持现代图片格式,具备智能排序和隐藏文件过滤功能。 ## 🌟 功能特性 ### 核心功能 - **SMB协议支持**: 连接Windows、NAS等设备的网络共享 - **双图浏览模式**: 左右对比查看图片,适合大屏体验 - **网格浏览模式**: 4列网格布局,快速浏览图片缩略图 - **智能搜索**: 实时搜索图片文件 - **智能排序**: 支持按名称、大小、日期、**类别**升序/降序排列 - **隐藏文件过滤**: 自动过滤系统隐藏文件(以"."开头) ### 🎨 图片格式支持 #### 全面的现代图片格式支持 - **Web 常用格式**: JPG, JPEG, PNG, GIF, BMP, ICO - **现代高效格式**: WebP, AVIF (智能兼容), HEIC, HEIF - **专业格式**: **TIFF, TIF** (新增), SVG (矢量图) - **RAW 相机格式**: RAW, ARW, CR2, CR3, NEF, ORF, RW2, PEF, SRW, DNG - **专业图像**: PSD, PSB, AI, EPS, HDR, EXR - **文档格式**: PDF (预览模式) - **传统格式**: TGA, PCX, PPM, PGM, PBM, XBM, XPM - **医疗/科学**: DCM, DICOM - **传真格式**: FAX, G3, G4 - **动画格式**: APNG, MNG ### 用户体验 - **Android TV优化**: 适配遥控器操作,支持Leanback模式 - **横屏设计**: 专为电视和横屏设备优化 - **连接记忆**: 保存连接设置,支持自动连接 - **流畅导航**: 支持分页浏览和快速切换 - **智能占位符**: 不支持的格式显示信息性占位符 ## 🚀 技术栈 - **开发语言**: Kotlin - **构建工具**: Gradle 8.2+ - **最低支持**: Android API 21 (Android 5.0) - **目标SDK**: Android API 34 ### 主要依赖 ```kotlin // SMB协议支持 implementation 'com.hierynomus:smbj:0.11.5' // 图片加载和格式支持 implementation 'com.github.bumptech.glide:glide:4.16.0' implementation 'com.caverock:androidsvg:1.4' // SVG支持 implementation 'androidx.exifinterface:exifinterface:1.3.6' // 图片信息支持 // 协程支持 implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3' // UI组件 implementation 'androidx.leanback:leanback:1.0.0' // TV支持 implementation 'androidx.recyclerview:recyclerview:1.3.2' implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0' ``` ## 📱 应用架构 ### 主要组件 - **MainActivity**: 主界面,管理双图/网格模式切换 - **SmbClient**: SMB连接和文件操作核心类,支持智能排序和文件过滤 - **FileAdapter**: 网格浏览的RecyclerView适配器 - **ImageLoader**: 增强的图片加载器,支持多种现代图片格式 - **ConnectionSettings**: 连接设置管理 ### 文件结构 ``` app/src/main/java/com/smbpics/ ├── MainActivity.kt # 主活动,UI控制 ├── SmbClient.kt # SMB客户端核心,图片格式识别 ├── FileAdapter.kt # 文件列表适配器 ├── ImageLoader.kt # 增强图片加载器 └── ConnectionSettings.kt # 连接配置管理 ``` ## 🔧 开发环境配置 ### 环境要求 - Android Studio Arctic Fox 或更高版本 - JDK 8 或更高版本 - Gradle 8.2+ ### 构建步骤 1. 克隆项目到本地 2. 使用Android Studio打开项目 3. 等待Gradle同步完成 4. 连接设备或启动模拟器 5. 点击运行按钮构建并安装 ## 📋 使用说明 ### 连接设置 1. 点击"连接"按钮 2. 填写SMB服务器信息: - 服务器地址: 如 `192.168.1.100` - 共享名称: 如 `photos` - 用户名: SMB用户名(可选) - 密码: SMB密码(可选) 3. 点击"连接"建立连接 ### 浏览模式 - **双图模式**: 左右显示两张图片,适合大屏对比查看 - **网格模式**: 4列缩略图网格,快速浏览和选择 - **自动播放**: 双图模式支持自动切换播放 ### 导航操作 - **上一页/下一页**: 在双图模式中切换图片 - **搜索功能**: 实时过滤图片文件 - **智能排序**: 支持按类别分组,专业格式自动归类 - **文件夹导航**: 支持多级目录浏览,快速返回上级 ### 🎯 图片格式特性 - **智能识别**: 自动识别40+种图片格式 - **分类显示**: 按文件类型智能分组排序 - **兼容处理**: 新格式在旧设备上显示占位符说明 - **性能优化**: 大图自动压缩,缩略图快速加载 ## 🔒 权限说明 应用需要以下权限: - **INTERNET**: 网络访问权限,用于SMB连接 - **ACCESS_NETWORK_STATE**: 网络状态检测 ## 🎯 适配说明 ### Android TV适配 - 支持Leanback Launcher - 遥控器友好操作 - 横屏布局优化 - 大字体和高对比度显示 ### 移动设备 - 支持触摸操作 - 自适应不同屏幕尺寸 - 支持横竖屏切换 ## 🐛 已知问题 - 大文件加载可能需要较长时间 - 某些SMB服务器版本可能存在兼容性问题 - 网络不稳定时连接可能中断 - AVIF格式在Android 12以下版本仅显示占位符 - TIFF格式在某些设备上支持有限 ## 📝 更新日志 ### v1.1.0 (最新版本) - ✨ **新增类别排序**: 按图片格式类型智能分组 - ✨ **TIFF/TIF支持**: 新增专业TIFF格式支持 - ✨ **现代格式支持**: WebP, AVIF, HEIC, HEIF智能兼容 - ✨ **隐藏文件过滤**: 自动过滤系统隐藏文件 - ✨ **RAW格式支持**: 支持相机RAW文件预览 - ✨ **SVG矢量图**: 支持可缩放矢量图形 - ✨ **增强图片加载器**: 40+种图片格式支持 - 🔧 **性能优化**: 图片加载和缓存优化 - 🔧 **用户体验**: 智能占位符和状态反馈 ### v1.0.0 (初始版本) - ✨ SMB网络共享连接 - ✨ 双图浏览模式 - ✨ 网格浏览模式 - ✨ 图片搜索和排序 - ✨ Android TV支持 ## 🤝 贡献指南 欢迎提交Issue和Pull Request来改进这个项目! ### 开发建议 1. 保持代码简洁和可读性 2. 添加适当的注释 3. 遵循Kotlin编码规范 4. 测试不同设备和Android版本 ## 📄 开源协议 本项目采用MIT许可证 - 查看[LICENSE](LICENSE)文件了解详情。 ## 🙏 致谢 - [SMBJ](https://github.com/hierynomus/smbj) - SMB协议Java实现 - [Glide](https://github.com/bumptech/glide) - 强大的图片加载库 - [AndroidSVG](https://github.com/BigBadaboom/androidsvg) - SVG支持库 - Android Jetpack组件 - 现代Android开发框架 ## 🏆 项目亮点 - 📸 **业界领先的图片格式支持** - 支持40+种图片格式,包括最新的AVIF、HEIC等 - 🎯 **智能分类排序** - 按图片类型自动分组,专业格式优先显示 - 🔒 **隐私保护** - 自动过滤系统隐藏文件,保护用户隐私 - 📺 **TV优化设计** - 专为大屏设备优化,遥控器友好操作 - ⚡ **性能卓越** - 异步加载,智能缓存,流畅浏览体验 - 🛡️ **向后兼容** - 支持Android 5.0+,新格式在旧设备上优雅降级 --- **SMB图片查看器** - 专业级网络图片浏览,支持现代图片格式,让您的视觉体验更进一步!