uniapp选择相册

在这里插入图片描述

概述

一款针对Android平台下的图片选择器,支持从相册获取图片、视频、音频&拍照,支持裁剪(单图or多图裁剪)、压缩、主题自定义配置等功能,支持动态获取权限&适配Android 5.0+系统的开源图片选择框架。
支持Uniapp和Uniapp X下的Vue2、VUe3编译,支持所有Android主流操作系统,兼容行可靠稳定

功能说明

下载源码

一. 参数说明

参数默认值说明
selectMimeType0全部0 图片1 视频1 硬盘3
language0系统默认 -1; 简体中文 0; 繁体 1; 英语 2; 韩语 3; 德语 4; 法语 5; 日语 6; 越语 7; 西班牙语 8; 葡萄牙语 9; 阿拉伯语 10; 俄语 11; 捷克 12; 哈萨克斯坦 13;
isCompresstrue是否压缩
isCropfalse是否剪切
isCameraIntercepttrue是否拦截相机按钮
isCameraForegroundServicetrue是否在前台运行
isDisplayCameratrue是否显示相机
isPageStrategytrue是否开启分页策略
maxSelectNum9最大选择数量
minSelectNum0最小选择数量
isVideoPauseResumePlaytrue视频支持暂停与播放
isQuickCapturetrue使用系统摄像机录制后,是否支持使用系统播放器立即播放视频
isPreviewAudiotrue是否支持音频预览
isPreviewImagetrue是否支持预览图片
isPreviewVideotrue是否支持预览视频
isPreviewFullScreenModetrue是否支持全屏预览
isEmptyResultReturntrue是否支持未选择返回
isWithSelectVideoImagetrue是否支持视频图片同选
isSelectZoomAnimtrue选择缩略图缩放效果
isOpenClickSoundtrue是否开启点击音效
isCameraAroundStatetrue是否开启相机前后切换
isCameraRotateImagetrue拍照是否纠正旋转图片
isGiftrue是否显示gif文件
isWebptrue是否显示webp文件
isBmptrue是否显示bmp文件
isMaxSelectEnabledMasktrue达到最大选择数是否开启禁选蒙层
isSyncCovertrueisPageModel模式下是否强制同步封面,默认false
isAutomaticTitleRecyclerToptrue点击相册标题是否快速回到第一项
isAutoVideoPlaytrue预览视频是否自动播放
isLoopAutoVideoPlaytrue预览视频是否循环播放
isFilterSizeDurationtrue是否过滤图片或音视频大小时长为0的资源
isFastSlidingSelecttrue是否快速滑动选择
isDirectReturnSingletrue是否直接返回单选
isPageSyncAlbumCounttrue分页模式下设置过滤条件后是否同步专辑下资源的数量
isUseSystemVideoPlayertrue是否使用系统自带的视频播放器

二. 返回数据说明

返回数据数据类型说明
compressedboolean是否压缩
compressPathsrtring压缩路径;设置了isCompress;时返回;
fileNamesrtring文件名
maxSelectEnabledMaskboolean是否有最大数量限制
numint文件数量
bucketIdint
mimeTypesrtring文件类型
durationint文件时长
cropResultAspectRatioint剪切宽高比
pathsrtring原图path,但在Android Q版本上返回的是content:// Uri类型
checkedboolean是否选中
realPathsrtring绝对路径
idint
toSandboxPathboolean是否使用自定义输出路径
sandboxPathsrtring自定义输出路径
chooseModelint
widthint宽度
heightint高度
originalboolean是否开启原图
availablePathsrtring
cutboolean是否剪切
cutPathsrtring裁剪后path,设置了isCrop返回
cropImageWidthint剪切宽度
cropImageHeightint剪切高度
parentFolderNamestring
sizeint文件大小
cropOffsetXint图片X轴偏移量
cropOffsetYint图片Y轴偏移量
galleryEnabledMaskboolean
editorImageboolean是否编辑
cameraSourceboolean是否原图
positionint位置
dateAddedTimedate文件添加时间

三.注意事项

从应用市场下载插件导入自己项目后,要先制作自定义插件后,才可以运行使用

插件需在 Android 5.0 版本及以上方可正常使用

尽量使用 HBuilderX 4.0+ 以上的最新版本,以便更好在uni-app和uni-app x中使用uts插件

2.完整代码示例

<template>
	<view>
		<button @click="openPicture()">打开相册</button>
		<uni-grid :column="4" :highlight="true">
			<uni-grid-item v-for="(result, index) in resultList" :index="index" :key="index">
				<view style="background-color: #fff; display: flex; justify-content: center; align-items: center;">
				    <image :src="result.path" mode="aspectFit" :style="{'width': imageSize + 'px', 'height': imageSize + 'px'}"></image>
				</view>

			</uni-grid-item>
		</uni-grid>
		
		<view style="margin: 10px;"> 返回值:</view>
		<scroll-view scroll-x="true" style="margin:20px; 0px ">
			<y-json-view :json="resultList" closed />
		</scroll-view>
	</view>
</template>

<script>
	import {open} from '@/uni_modules/pic-selector'
	const modal = uni.requireNativePlugin('modal');
	export default {
		data() {
			return {
				imageSize:uni.getSystemInfoSync().windowWidth/4-10,
				resultList:[
					// {
					//     "compressed": true,//是否压缩
					//     "compressPath": "",//压缩路径;设置了isCompress;时返回;
					//     "fileName": "",//文件名
					//     "maxSelectEnabledMask": false,
					//     "num": 1,//文件数量
					//     "bucketId": -643270046,
					//     "mimeType": "image/jpeg",//文件类型
					//     "duration": 0,//文件时长
					//     "cropResultAspectRatio": 1,
					//     "path": "",//原图path,但在Android Q版本上返回的是content:// Uri类型
					//     "checked": false,
					//     "realPath": "",//绝对路径
					//     "id": 13043,
					//     "toSandboxPath": true,//是否使用自定义输出路径
					//     "sandboxPath": "",//自定义输出路径
					//     "chooseModel": 0,
					//     "width": 1134,//宽度
					//     "height": 1780,//高度
					//     "original": false,//是否开启原图
					//     "availablePath": "",
					//     "cut": true,//是否剪切
					//     "cutPath": "",//裁剪后path,设置了isCrop返回
					//     "cropImageWidth": 567,//剪切宽度
					//     "cropImageHeight": 567,//剪切高度
					//     "parentFolderName": "WeiXin",
					//     "size": 392774,//文件大小
					//     "cropOffsetX": 0,//图片X轴偏移量
					//     "cropOffsetY": 162,//图片Y轴偏移量
					//     "galleryEnabledMask": false,
					//     "editorImage": false,
					//     "cameraSource": false,
					//     "position": 1,
					//     "dateAddedTime": 1749993134
					// }
				]
			}
		},
		methods: {
			openPicture(){
				let _this = this
				let params = {
					selectMimeType:0,//全部0 图片1 视频1 硬盘3
					language:0, //system Language -1; 简体中文  0; 繁体 1; 英语 2;  韩语 3; 德语 4; 法语 5; 日语 6; 越语 7;  西班牙语 8; 葡萄牙语 9; 阿拉伯语 10; 俄语 11; 捷克 12; 哈萨克斯坦 13;
					isCompress:true,//是否压缩
					isCrop:false,//是否剪切
					isCameraIntercept :true,//是否拦截相机按钮
					isCameraForegroundService:true,//是否在前台运行
					isDisplayCamera:true,//是否显示相机
					isPageStrategy:true,//是否开启分页策略
					maxSelectNum:99,//最大选择数量
					minSelectNum:0,//最小选择数量
					isVideoPauseResumePlay:true,//视频支持暂停与播放
					isQuickCapture:true,//使用系统摄像机录制后,是否支持使用系统播放器立即播放视频
					isPreviewAudio:true,//是否支持音频预览
					isPreviewImage:true,//是否支持预览图片
					isPreviewVideo:true,//是否支持预览视频
					isPreviewFullScreenMode:true,//是否支持全屏预览
					isEmptyResultReturn:true,//是否支持未选择返回
					isWithSelectVideoImage:true,//是否支持视频图片同选
					isSelectZoomAnim:true, //选择缩略图缩放效果
					isOpenClickSound:true,//是否开启点击音效
					isCameraAroundState:true,//是否开启相机前后切换
					isCameraRotateImage:true,//拍照是否纠正旋转图片
					isGif:true,//是否显示gif文件
					isWebp:true, //是否显示webp文件
					isBmp:true,//是否显示bmp文件
					isMaxSelectEnabledMask:true,//达到最大选择数是否开启禁选蒙层
					isSyncCover:true, //isPageModel模式下是否强制同步封面,默认false
					isAutomaticTitleRecyclerTop:true,//点击相册标题是否快速回到第一项
					isAutoVideoPlay:true,//预览视频是否自动播放
					isLoopAutoVideoPlay:true,//预览视频是否循环播放
					isFilterSizeDuration:true,//是否过滤图片或音视频大小时长为0的资源
					isFastSlidingSelect:true,//是否快速滑动选择
					isDirectReturnSingle:true,//是否直接返回单选
					isPageSyncAlbumCount:true,//分页模式下设置过滤条件后是否同步专辑下资源的数量
					isUseSystemVideoPlayer:true,//是否使用系统自带的视频播放器
				}
				open(params,{
					onResult(result){
						if(result){
							_this.resultList = JSON.parse(result)
							console.log('onResult--->>',result)
							modal.toast({ message: _this.resultList, duration: 1.5 });
						}
					},
					onCancel(){
						console.log('onCancel--->>',result)
					}
				})
			}
		}
	}
</script>

<style>
</style>

长期维护,持续更新,对付费用户提供终身免费技术支持

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袭烽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值