Skip to content

caoyanglee/ImagePicker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e506c86 · Dec 11, 2021
Sep 7, 2021
Dec 11, 2021
Sep 7, 2021
Sep 29, 2021
Mar 6, 2018
Mar 21, 2019
Jan 15, 2021
May 13, 2019
Dec 11, 2021
Sep 20, 2019
Dec 11, 2016
Dec 11, 2016
Sep 7, 2021
Mar 6, 2018

Repository files navigation

图片选择器

License API

演示

准备工作

1.获取依赖

project的build.gradle

allprojects {
    repositories {
        ......       
        maven { url "https://jitpack.io" } 
    }
}

app的build.gradle

implementation 'com.github.caoyanglee:ImagePicker:{latestVersion}'
//以下为此库所依赖的第三方
//图片裁剪
compile 'com.theartofdev.edmodo:android-image-cropper:2.8.0'
//图片预览
compile 'com.github.chrisbanes:PhotoView:2.1.3'
//downloader
compile 'com.liulishuo.filedownloader:library:1.7.7'
//viewPager底部圆圈指示器
compile 'com.romandanylyk:pageindicatorview:1.0.3@aar'
//nineold 配合下拉图片
compile 'com.nineoldandroids:library:2.4.0'
//显示大图
compile 'com.shizhefei:LargeImageView:1.1.0'
//压缩
compile 'id.zelory:compressor:3.0.0'

2.增加权限

<!-- 相机权限 -->
<uses-permission android:name="android.permission.CAMERA" />
<!-- 存储权限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

3.增加FileProvider【适配7.0】

注意:此处的android:resource="@xml/filepaths"自己谷歌或直接获取demo文件

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="${applicationId}.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/filepaths" />
</provider>

用法

1.1.打开图库 多选

ImagePicker.pickImage(activity);

多参数调用

/**
 * @param activity
 * @param maxSelectNum 最大选择图片数          default=9
 * @param enableCamera 是否启用摄像头          default=true
 * @param enablePreview 是否打开预览           default=true
 * @param showIsCompress 是否显示使用原图按钮   default=true
 */
ImagePicker.pickImage(activity, 9, true, true, true);

1.2.打开图库 单选

ImagePicker.pickImage4One(activity);

多参数调用

/**
 * @param activity
 * @param enableCamera 是否启用摄像头          default=true
 * @param enableCrop   是否打开裁剪            default=true
 * @param cropAspectRatioX   裁剪宽高比 宽     default=0
 * @param cropAspectRatioY   裁剪宽高比 高     default=0
 * @param showIsCompress 是否显示使用原图按钮   default=true
 */
ImagePicker.pickImage4One(activity,true,true,9,16,true);

1.3.直接拍照

ImagePicker.takePhoto(activity);

多参数调用

/**
 * @param activity
 * @param enableCrop 是否启用裁剪 default=false
 * @param cropAspectRatioX   裁剪宽高比 宽     default=0
 * @param cropAspectRatioY   裁剪宽高比 高     default=0
 */
ImagePicker.takePhoto(activity,ture,9,16);

2.接收结果信息

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (data==null)return
    if (resultCode == RESULT_OK && requestCode == ImagePicker.REQUEST_IMAGE) {
        val pics = data?.getSerializableExtra(ImagePicker.REQUEST_OUTPUT) as ArrayList<String>
       // do something
    }
}

3.可拖拽下拉退出的图片预览页面

ImagePreviewActivity.start(context,imageList)