600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > android 自定义相册选择 Android图片选择器 支持拍照 从相册选择 裁剪 自定义主题...

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

时间:2023-01-08 01:40:58

相关推荐

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

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

一、项目现在的样子

图片选择计数预览.png

图片裁剪.png

自定义主题.png

二、怎么应用?

依赖: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样式进行重写覆盖原有值就可以了。在外部可以这样写:

........

或者

........

属性说明:

//标题栏背景色

@color/draculaPrimary

//状态栏颜色

@color/draculaPrimaryDark

//裁剪页面按钮颜色

@color/draculaColorAccent

//标题栏高度,默认自适应系统高度

52dp

//页面切换动画,默认为系统动画

@style/ActivityAnimation

//选择图片集合时的指示Icon

@drawable/van_spinner_down

//页面返回按钮指示Icon

@drawable/van_chevron_left

//标题字体颜色

@color/draculaTextColorPrimary

//标题字体大小

@dimen/van_sp_title

//页面背景色

@color/draculaWindowBackground

//选择图片集合显示图片数量字体颜色

@color/draculaSpinnerCount

//PopupWindow背景色

@style/Popup.Dracula

//没有图片时友好提示图片

@drawable/van_empty_dracula

//没有图片时友好提示文字

@color/draculaEmptyText

//底部按钮字体大小

@dimen/van_sp_navigation

//底部背景色

@color/draculaNavigationBackground

//【预览】字体颜色

@color/draculaNavigationPreview

//【确定】字体颜色

@color/draculaNavigationApply

//图片展示界面显示【拍照】时背景色

@color/draculaCameraBackground

//【拍照】字体颜色

@color/draculaCamera

四:福利

项目中有对话框代码、权限请求封装等;拍照也可以跳转到裁剪页面,一切都准备好了。更多详情请阅读源码,有详细注释。

文森特·威廉·梵·高(Vincent Willem van Gogh,1853-1890),荷兰后印象派画家。出生于新教牧师家庭,是后印象主义的先驱,并深深地影响了二十世纪艺术,尤其是野兽派与表现主义。——百度百科

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。