Album

2025-05-09

android

社会上崇敬名人,于是以为名人的话就是名言,却忘记了他所以得名是那一种学问和事业。 —— 鲁迅

GitHub - yanzhenjie/Album: 🍉 Album and Gallery for Android platform.

Album:Android 平台的相册与图库解决方案

在 Android 应用开发中,相册与图库功能是一种常见的需求,无论是拍照、选择图片,还是视频管理。Album 是一个轻量级的开源库,为开发者提供了便捷的相册与图库功能解决方案。


什么是 Album?

Album 是一个专为 Android 平台设计的相册与图库管理库,它支持图片和视频的选择、拍摄、裁剪等功能。通过 Album,开发者可以快速集成丰富的多媒体功能,而无需编写复杂的代码。

核心特点:

  1. 多媒体支持:支持图片、视频以及文件的选择和管理。
  2. 内置相机功能:支持直接拍照或录制视频。
  3. 裁剪与压缩:提供图片裁剪和压缩功能。
  4. 多选与单选模式:灵活选择单个文件或多个文件。
  5. UI 友好:内置现代化的用户界面,提升用户体验。

使用场景

Album 适用于以下场景:

  1. 图片选择
    用于用户上传头像或分享图片的场景。

  2. 视频管理
    支持视频的选择和上传,适合社交媒体和内容分享应用。

  3. 文件管理
    支持文件选择功能,适合文件上传和管理的场景。

  4. 拍照与录制
    提供直接调用系统相机拍照或录制视频的功能。


快速上手指南

以下是使用 Album 的基本步骤:

1. 添加依赖

在项目的 build.gradle 文件中添加以下依赖:

1
implementation 'com.yanzhenjie:album:2.1.5'

2. 初始化

在应用程序启动时初始化 Album:

1
2
3
4
5
6
7
@Override
public void onCreate() {
super.onCreate();
Album.initialize(AlbumConfig.newBuilder(this)
.setAlbumLoader(new MediaLoader()) // 设置图片加载器
.build());
}

3. 单选图片

以下是一个选择单张图片的示例:

1
2
3
4
5
6
7
8
9
10
11
12
Album.image(this)
.singleChoice()
.camera(true) // 是否允许拍照
.columnCount(3) // 列数
.onResult(result -> {
// 返回图片路径
String imagePath = result.get(0).getPath();
})
.onCancel(() -> {
// 用户取消操作
})
.start();

4. 多选图片

以下是一个选择多张图片的示例:

1
2
3
4
5
6
7
8
9
10
11
12
Album.image(this)
.multipleChoice()
.camera(true)
.columnCount(3)
.selectCount(9) // 最多选择9张图片
.onResult(result -> {
// 返回图片路径列表
List<String> imagePaths = result.stream()
.map(albumFile -> albumFile.getPath())
.collect(Collectors.toList());
})
.start();

高级功能

1. 视频选择

支持视频的选择和管理:

1
2
3
4
5
6
7
Album.video(this)
.singleChoice()
.camera(true)
.onResult(result -> {
String videoPath = result.get(0).getPath();
})
.start();

2. 文件选择

支持选择任意类型的文件:

1
2
3
4
5
6
7
8
9
Album.file(this)
.multipleChoice()
.selectCount(5)
.onResult(result -> {
List<String> filePaths = result.stream()
.map(albumFile -> albumFile.getPath())
.collect(Collectors.toList());
})
.start();

3. 自定义加载器

支持自定义图片加载逻辑:

1
2
3
4
5
6
7
8
9
public class MediaLoader implements AlbumLoader {
@Override
public void load(ImageView imageView, AlbumFile albumFile) {
// 使用 Glide 或 Picasso 加载图片
Glide.with(imageView.getContext())
.load(albumFile.getPath())
.into(imageView);
}
}

社区与支持

Album 是一个活跃的开源项目,目前在 GitHub 上拥有 2504 个星标508 个分支,受到开发者社区的广泛关注。你可以通过以下方式获取更多帮助:

  • 访问项目主页GitHub 仓库
  • 提交 Issue:报告 Bug 或提出功能建议。
  • 贡献代码:通过 Pull Request 为项目做出贡献。

适用项目

Album 适合各种类型的 Android 项目,特别是在以下场景中表现出色:

  1. 社交应用:如支持用户上传图片或视频的功能。
  2. 电商应用:用于商品图片的选择和上传。
  3. 多媒体管理工具:用于图片和视频的浏览和管理。

结语

Album 是一个功能丰富且易于使用的多媒体解决方案,它通过简洁的 API 和灵活的配置,为 Android 开发者提供了高效的相册与图库管理能力。如果你正在寻找一个轻量级的多媒体库,不妨试试 Album!它将让你的应用开发更加高效和便捷。