/PhotoPicker

Android photo picker library

Primary LanguageJava

PhotoPicker

基于 lovetuzitong/MultiImageSelector 修改的一个照片选择库。

compile 'cc.dagger:photopicker:1.0'

功能:

  • 支持主流图片加载库
  • 照片尺寸、Gif过滤
  • 运行时权限检查

Demo Video

使用介绍

  • Application 配置
PhotoPicker.init(ImageLoader, null);
  • AndroidManifest 配置
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<activity
    android:name="cc.dagger.photopicker.MultiImageSelectorActivity"
    android:screenOrientation="portrait"
    android:theme="@style/NO_ACTIONBAR" />

<activity
    android:name="cc.dagger.photopicker.PhotoPreviewActivity"
    android:screenOrientation="portrait"
    android:theme="@style/NO_ACTIONBAR"/>
  • 选择照片
// 单选
PhotoPicker.load()
        .filter(PhotoFilter) // 照片属性过滤
        .gridColumns(4) // 照片列表显示列数
        .showCamera(false)
        .single()
        .start(Activity/Fragment); // 从Fragment、Activity中启动


// 多选
PhotoPicker.load()
        .filter(PhotoFilter) // 照片属性过滤
        .gridColumns(4) // 照片列表显示列数
        .showCamera(true)
        .multi()
        .maxPickSize(9) // 最大选择数
        .selectedPaths(ArrayList<String>) // 已选择的照片地址
        .start(Activity/Fragment); // 从Fragment、Activity中启动

// 接收选择的照片
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == PhotoPicker.REQUEST_SELECTED) {
        if (resultCode == RESULT_OK) {
            ArrayList<String> paths = data.getStringArrayListExtra(PhotoPicker.EXTRA_RESULT);
            // ...
        }
    }
}
  • 预览照片
PhotoPicker.preview()
        .paths(ArrayList<String>)
        .currentItem(0)
        .start(ActivityFragment);

// 预览后返回照片地址
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == PhotoPicker.REQUEST_PREVIEW) {
        if (resultCode == RESULT_OK) {
            ArrayList<String> paths = data.getStringArrayListExtra(PhotoPicker.PATHS);
            // ...
        }
    }
}