react-native多图选择、图片裁剪(支持ad/ios图片个数控制)
前言:
目前关于rn比较知名并且封装好的图片选择控件很多,不过能同时支持多图片上传,个数控制兼容iOS/Ad的却寥寥无几,而今天介绍的这款框架可以实现:图片裁剪、最大图片个数限制、拍照、本地相册等功能。
效果:
使用简介:
原理:react-native-syan-image-picker多图片选择器:
Android 基于 PictureSelector 2.0
iOS 基于 TZImagePickerController 1.9.0
iOS/android配置:具体步骤参考:https://github.com/syanbo/react-native-syan-image-picker
核心代码:
- import ImagePicker from 'react-native-syan-image-picker'
- /**
- * 默认参数
- */
- const options = {
- imageCount: 6, // 最大选择图片数目,默认6
- isCamera: true, // 是否允许用户在内部拍照,默认true
- isCrop: false, // 是否允许裁剪,默认false
- CropW: ~~(width * 0.6), // 裁剪宽度,默认屏幕宽度60%
- CropH: ~~(width * 0.6), // 裁剪高度,默认屏幕宽度60%
- isGif: false, // 是否允许选择GIF,默认false,暂无回调GIF数据
- showCropCircle: false, // 是否显示圆形裁剪区域,默认false
- showCropFrame: true, // 是否显示裁剪区域,默认true
- showCropGrid: false // 是否隐藏裁剪区域网格,默认false
- };
- /**
- * 以Callback形式调用
- * 1、相册参数暂时只支持默认参数中罗列的属性;
- * 2、回调形式:showImagePicker(options, (err, selectedPhotos) => {})
- * 1)选择图片成功,err为null,selectedPhotos为选中的图片数组
- * 2)取消时,err返回"取消",selectedPhotos将为undefined
- * 按需判断各参数值,确保调用正常,示例使用方式:
- * showImagePicker(options, (err, selectedPhotos) => {
- * if (err) {
- * // 取消选择
- * return;
- * }
- * // 选择成功
- * })
- *
- * @param {Object} options 相册参数
- * @param {Function} callback 成功,或失败回调
- */
- /**
- * 以Promise形式调用
- * 1、相册参数暂时只支持默认参数中罗列的属性;
- * 2、使用方式
- * 1)async/await
- * handleSelectPhoto = async () => {
- * try {
- * const photos = await SYImagePicker.asyncShowImagePicker(options);
- * // 选择成功
- * } catch (err) {
- * // 取消选择,err.message为"取消"
- * }
- * }
- * 2)promise.then形式
- * handleSelectPhoto = () => {
- * SYImagePicker.asyncShowImagePicker(options)
- * .then(photos => {
- * // 选择成功
- * })
- * .catch(err => {
- * // 取消选择,err.message为"取消"
- * })
- * }
- * @param {Object} options 相册参数
- * @return {Promise} 返回一个Promise对象
- */
小技巧:iOS拍照为英文,如果需要设置成中文简体,请看这篇:《iOS设置拍照retake和use按钮为中文简体》
到此已经结束了,总体来说使用还是很方便的,如有使用上的问题或者疑问欢迎评论留言~
react-native多图选择、图片裁剪(支持ad/ios图片个数控制)的更多相关文章
- 【React Native】进阶指南之一(特定平台、图片加载、动画使用)
一.特定平台代码 React Native提供了两种方法来区分平台: 使用Platform模块: 使用特定平台扩展名: 1.Platform模块 React Native提供了一个检测当前运行平台的模 ...
- [RN] React Native 下实现底部标签(支持滑动切换)
上一篇文章 [RN] React Native 下实现底部标签(不支持滑动切换) 总结了不支持滑动切换的方法,此篇文章总结出 支持滑动 的方法 准备工作之类的,跟上文类似,大家可点击上文查看相关内容. ...
- iOS圆形图片裁剪,以及原型图片外面加一个圆环
废话不多说,直接上代码 #import "ViewController.h" @interface ViewController () @property (nonatomic,s ...
- 23.Quick QML-简单且好看的图片浏览器-支持多个图片浏览、缩放、旋转、滑轮切换图片
之前我们已经学习了Image.Layout布局.MouseArea.Button.GroupBox.FileDialog等控件. 所以本章综合之前的每章的知识点,来做一个图片浏览器,使用的Qt版本为Q ...
- 基于图片识别服务的IOS图片识别程序
由于TensorFlow提供的IOS版Demo相对于Android版识别率不高,所以开发了通过识别服务进行图片识别的IOS版程序. 该程序基于图片识别服务(http://www.cnblogs.com ...
- 前端手势控制图片插件书写四(图片上传及Ios图片方向问题)
1.在图片上传中,使用的input的type为File的属性.使用filereader的Api let that = this; var file = document.getElementById( ...
- react native android6+拍照闪退或重启的解决方案
前言 android 6+权限使用的时候需要动态申请,那么在使用rn的时候要怎么处理拍照权限问题呢?本文提供的是一揽子rn操作相册.拍照的解决方案,请看正文的提高班部分. 解决步骤 1.Android ...
- [RN] React Native 自定义 底部 弹出 选择框 实现
React Native 自定义 底部选择框 实现 效果如图所示: 实现方法: 一.组件封装 CustomAlertDialog.js import React, {Component} from ' ...
- 深入浅出 React Native:使用 JavaScript 构建原生应用
深入浅出 React Native:使用 JavaScript 构建原生应用 链接:https://zhuanlan.zhihu.com/p/19996445 原文:Introducing React ...
随机推荐
- Codeforces 858A. k-rounding 数论
题目: 题意:输入n和k,找到一个最小的数,满足末尾有至少k个0和是n的倍数. 最小的情况 ans = n,最大的情况 ans = n*pow(10,k). 令 k = pow(10,k); 我们发现 ...
- 宿命的PSS
宿命的PSS 时间限制: 1 Sec 内存限制: 128 MB提交: 60 解决: 37[提交][状态][讨论版] 题目描述 最小生成树P.S.S在宿命的指引下找到了巫师Kismi.P.S.S希望 ...
- python---time模块使用详解
python中的time模块提供一些方法用来进行关于时间的操作,time模块中有以下方法可供使用: time() --- 返回当前时间的时间戳. 调用:time.time(), 可用于计算程序运行的 ...
- [js高手之路] html5 canvas动画教程 - 匀速运动
匀速运动:指的是物体在一条直线上运动,并且物体在任何相等时间间隔内通过的位移都是相等的.其实就是匀速直线运动,它的特点是加速度为0,从定义可知,在任何相等的时间间隔内,速度大小和方向是相同的. < ...
- PHP抓取网页图片
<?php set_time_limit(0);//抓取不受时间限制 if($_POST['Submit']=="开始抓取"){ $URL=$_POST['link']; g ...
- 百度的js日历
<title>百度的Js日历,值得一看</title> <style> body,td,.p1,.p2,.i{font-family:arial} body{mar ...
- wpf 制作必输项的*标记
直接引用帮助文档上的话吧,以免下次忘记! AdornedElementPlaceholder 类 .NET Framework 3.5 其他版本 此主题尚未评级 - 评价此主题 更新:20 ...
- marked插件在线实时解析markdown的web小工具
访问地址: https://mdrush.herokuapp.com/ github项目: https://github.com/qcer/MDRush 实现简介: 1.动态数据绑定 借助Vuejs, ...
- 从给数组中的对象去重看Javascript中的reduce()
假设有这样一个数组: let person = [ {id: 0, name: "小明"}, {id: 1, name: "小张"}, {id: 2, name ...
- C#类的学习
①类的定义是以关键字 class 开始,后跟类的名称.类的主体,包含在一对花括号内.下面是类定义的一般形式: 类的修饰符 class 类名 :继承的类{ //类的成员 } 请注意: 如果要访问类的成员 ...