@Tyhj
        
        2018-12-02T16:28:04.000000Z
        字数 1742
        阅读 1418
    Android
原文链接:https://www.zybuluo.com/Tyhj/note/1307477
图片选择经常用到,系统自带的图片选择挺好的,写起来不难,但是比较麻烦,所以自己集成了一个库,方便使用
Step 1. Add the JitPack repository to your build file
//Add it in your root build.gradle at the end of repositories:allprojects {repositories {...maven { url 'https://jitpack.io' }}}
Step 2. Add the dependency
//Add the dependencydependencies {implementation 'com.github.tyhjh:picturePickUtil:v1.0.2'}
PicturePickUtil.pick(MainActivity.this, new OnPickListener() {@Overridepublic void pickPicture(File file) {iv_picture.setImageBitmap(BitmapFactory.decodeFile(file.getPath()));}});
界面非常简洁,使用默认界面打开相机或者相册来选择图片 

首先Android 7.0以上在应用间共享Uri必须使用FileProvider,所以必须先配置在AndroidManifest中配置provider,由于每个应用的provider的authorities是不可以一样的,所以需要单独配置
<providerandroid:name="android.support.v4.content.FileProvider"android:authorities="yourName"android:exported="false"android:grantUriPermissions="true"><meta-dataandroid:name="android.support.FILE_PROVIDER_PATHS"android:resource="@xml/provider_paths" /></provider>
@xml/provider_paths文件库里面有写,不用再生成,但是authorities的值需要用到,需要保存
//保存authority值PicturePickUtil.init("yourName");//设置图片长宽(作为参考不会修改图片比例)和文件大小,进行压缩PicturePickUtil.setPictureSize(500, 500, 500);//设置裁剪的比例,设置为null则可手动随意裁剪,默认会复制一次,防止把原图片改变PicturePickUtil.setPictureScale(1, 1);//如果不需要裁剪,直接获取路径可以设置为false,PicturePickUtil.setCreatNewFile(false);
当然也可以不使用默认界面,直接打开相册或者相机选择图片
PicturePickUtil.pickByAlbum(MainActivity.this, new OnPickListener() {@Overridepublic void pickPicture(File file) {iv_picture.setImageBitmap(BitmapFactory.decodeFile(file.getPath()));}});PicturePickUtil.pickByCamera(MainActivity.this, new OnPickListener() {@Overridepublic void pickPicture(File file) {iv_picture.setImageBitmap(BitmapFactory.decodeFile(file.getPath()));}});
项目地址(最新版本):https://github.com/tyhjh/PicturePickUtil
