[关闭]
@Tyhj 2018-12-02T16:28:04.000000Z 字数 1742 阅读 1125

Android系统图片选择工具封装

Android


原文链接:https://www.zybuluo.com/Tyhj/note/1307477

图片选择经常用到,系统自带的图片选择挺好的,写起来不难,但是比较麻烦,所以自己集成了一个库,方便使用

集成方法:

Step 1. Add the JitPack repository to your build file

  1. //Add it in your root build.gradle at the end of repositories:
  2. allprojects {
  3. repositories {
  4. ...
  5. maven { url 'https://jitpack.io' }
  6. }
  7. }

Step 2. Add the dependency

  1. //Add the dependency
  2. dependencies {
  3. implementation 'com.github.tyhjh:picturePickUtil:v1.0.2'
  4. }

使用例子

  1. PicturePickUtil.pick(MainActivity.this, new OnPickListener() {
  2. @Override
  3. public void pickPicture(File file) {
  4. iv_picture.setImageBitmap(BitmapFactory.decodeFile(file.getPath()));
  5. }
  6. });

效果图

界面非常简洁,使用默认界面打开相机或者相册来选择图片
屏幕快照 2018-10-11 下午8.50.09.png-15.3kB

具体使用

首先Android 7.0以上在应用间共享Uri必须使用FileProvider,所以必须先配置在AndroidManifest中配置provider,由于每个应用的provider的authorities是不可以一样的,所以需要单独配置

  1. <provider
  2. android:name="android.support.v4.content.FileProvider"
  3. android:authorities="yourName"
  4. android:exported="false"
  5. android:grantUriPermissions="true">
  6. <meta-data
  7. android:name="android.support.FILE_PROVIDER_PATHS"
  8. android:resource="@xml/provider_paths" />
  9. </provider>

@xml/provider_paths文件库里面有写,不用再生成,但是authorities的值需要用到,需要保存

  1. //保存authority值
  2. PicturePickUtil.init("yourName");
  3. //设置图片长宽(作为参考不会修改图片比例)和文件大小,进行压缩
  4. PicturePickUtil.setPictureSize(500, 500, 500);
  5. //设置裁剪的比例,设置为null则可手动随意裁剪,默认会复制一次,防止把原图片改变
  6. PicturePickUtil.setPictureScale(1, 1);
  7. //如果不需要裁剪,直接获取路径可以设置为false,
  8. PicturePickUtil.setCreatNewFile(false);

当然也可以不使用默认界面,直接打开相册或者相机选择图片

  1. PicturePickUtil.pickByAlbum(MainActivity.this, new OnPickListener() {
  2. @Override
  3. public void pickPicture(File file) {
  4. iv_picture.setImageBitmap(BitmapFactory.decodeFile(file.getPath()));
  5. }
  6. });
  7. PicturePickUtil.pickByCamera(MainActivity.this, new OnPickListener() {
  8. @Override
  9. public void pickPicture(File file) {
  10. iv_picture.setImageBitmap(BitmapFactory.decodeFile(file.getPath()));
  11. }
  12. });

项目地址(最新版本):https://github.com/tyhjh/PicturePickUtil

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注