Android系统图片选择工具封装

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

集成方法:

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 dependency
dependencies {
            implementation 'com.github.tyhjh:picturePickUtil:v1.0.8'
    }

使用例子

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

效果图

界面非常简洁,打开相机或者相册来选择图片


屏幕快照 2018-10-11 下午8.50.09.png-15.3kB
屏幕快照 2018-10-11 下午8.50.09.png-15.3kB

具体使用

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

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="yourName"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android: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);

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

PicturePickUtil.pickByAlbum(MainActivity.this, new OnPickListener() {
                    @Override
                    public void pickPicture(File file) {
                        iv_picture.setImageBitmap(BitmapFactory.decodeFile(file.getPath()));
                    }
                });
PicturePickUtil.pickByCamera(MainActivity.this, new OnPickListener() {
                    @Override
                    public void pickPicture(File file) {
                        iv_picture.setImageBitmap(BitmapFactory.decodeFile(file.getPath()));
                    }
                });

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,916评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 13,067评论 2 59
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,082评论 19 139
  • 在这二十来岁的年纪里,或许我们都不该给自己过早的下某个定义。适合做什么,不适合做什么。很多东西,你不接触它便不知道...
    SinceThen1阅读 193评论 0 1
  • 今天,周晨光老师给我们带来了一节有意思的米课堂--《胡子叔叔的快乐体育课》。 问题: 用报纸、塑料袋和胶带能干什么...
    三门峡745沈莉红阅读 864评论 7 10