Android图片选择器,支持拍照、从相册选择、裁剪、自定义主题

在很多项目中都会用到图片选择器,比如在选择头像的时候,还会要求选择图片进行裁剪后再进行上传;而有的项目要支持拍照后进行图片裁剪再进行上传。由于Android系统兼容性问题,我们不得不考虑自己实现图片裁剪的整个过程。本项目就是在这样的环境下诞生的。为了能够快速引用到项目中,这里选择了自定义主题,在库中定义了默认属性,如果主题不符合你的需求,那就继承默认主题VanTheme进行重写覆盖就好了。所有属性以及代码都有详细注释,需要深入了解的请阅读源码。此项目是在已有项目的基础上并根据我自己的需求进行的开发,整合,在此感谢各位大神了!图片选择器也有很多开源的项目了,大多相差都不大,但也各有优缺点;为了不让观众混淆,在此我把项目命名为VanGogh。相信大家对这个名字不陌生吧!

一、项目现在的样子


Android图片选择器,支持拍照、从相册选择、裁剪、自定义主题_第1张图片
图片选择计数预览.png
Android图片选择器,支持拍照、从相册选择、裁剪、自定义主题_第2张图片
图片裁剪.png
Android图片选择器,支持拍照、从相册选择、裁剪、自定义主题_第3张图片
自定义主题.png

高清照:https://github.com/GitPhoenix/VanGogh/tree/master/screen

二、怎么应用?

依赖:compile 'com.alley:VanGogh:1.3.3'

//拍照
VanGogh.from(MainActivity.this)
        .choose(VanMediaType.ofAll())//拍照时,无效
        .cameraVisible(true, getPackageName())//拍照时,第一个参数无效
        .withResultSize(1024, 1024)
        .cropEnable(true, VanCropType.CROP_TYPE_RECTANGLE)//第一个参数为FALSE时,第二个参数无效
        .theme(R.style.VanTheme_ActivityAnimation)
        .thumbnailScale(0.85f)
        .toast(new VanToast())
        .imageLoader(new GlideImageLoader())
        .forCamera(REQUEST_CODE_CAMERA);

//从相册选择
VanGogh.from(MainActivity.this)
        .choose(VanMediaType.ofAll())
        .countable(true)//若开启裁剪,则无效
        .maxCount(9)
        .rowCount(3)
        .cameraVisible(true, getPackageName())//设置在第一个参数为FALSE时,第二个参数无效
        .withResultSize(1024, 1024)
        .cropEnable(false, VanCropType.CROP_TYPE_RECTANGLE)//第一个参数为TRUE时,则可选中数量被设为1,此时maxSelectable(9)无效;第一个参数为FALSE时,第二个参数无效
        .theme(R.style.VanTheme_Dracula)
        .addFilter(new GifSizeFilter(320, 320, 5 * VanMediaFilter.K * VanMediaFilter.K))
        .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
        .thumbnailScale(0.85f)
        .toast(new VanToast())
        .imageLoader(new GlideImageLoader())
        .forResult(REQUEST_CODE_CHOOSE);

三、自定义主题
项目中已定义了默认属性,只需继承VanTheme样式进行重写覆盖原有值就可以了。在外部可以这样写:


或者


属性说明:


四:福利
项目中有对话框代码、权限请求封装等;拍照也可以跳转到裁剪页面,一切都准备好了。更多详情请阅读源码,有详细注释。
文森特·威廉·梵·高(Vincent Willem van Gogh,1853-1890),荷兰后印象派画家。出生于新教牧师家庭,是后印象主义的先驱,并深深地影响了二十世纪艺术,尤其是野兽派与表现主义。——百度百科

源码:https://github.com/GitPhoenix/VanGogh

你可能感兴趣的:(Android图片选择器,支持拍照、从相册选择、裁剪、自定义主题)