近期做的软件中图片处理是重点,那么自然也就用到了相机照相或者相册选取照片的功能。

react-native中有image-picker这个第三方组件,但是0.18.10这个版本还不是太支持iPad。

这个组件同时支持photo和video,也就是照片和视频都可以用这个组件实现。

安装

npm install --save react-native-image-picker

安装过之后要执行rnpm link命令

用法

 import ImagePickerManager from 'NativeModules';
 
当你想展示相机还是相册这个选择器时:(变量options还有其它的设置,一些使用它的默认值就可以满足我们的要求,以下是我使用到的)
var options = {
title: 'Select Avatar', // 选择器的标题,可以设置为空来不显示标题
cancelButtonTitle: 'Cancel',
takePhotoButtonTitle: 'Take Photo...', // 调取摄像头的按钮,可以设置为空使用户不可选择拍照
chooseFromLibraryButtonTitle: 'Choose from Library...', // 调取相册的按钮,可以设置为空使用户不可选择相册照片
customButtons: {
'Choose Photo from Facebook': 'fb', // [按钮文字] : [当选择这个按钮时返回的字符串]
},
mediaType: 'photo', // 'photo' or 'video'
videoQuality: 'high', // 'low', 'medium', or 'high'
durationLimit: 10, // video recording max time in seconds
maxWidth: 100, // photos only默认为手机屏幕的宽,高与宽一样,为正方形照片
maxHeight: 100, // photos only
allowsEditing: false, // 当用户选择过照片之后是否允许再次编辑图片
};
 
ImagePickerManager.showImagePicker(options, (response) => {
console.log('Response = ', response); if (response.didCancel) {
console.log('User cancelled image picker');
}
else if (response.error) {
console.log('ImagePickerManager Error: ', response.error);
}
else if (response.customButton) {
// 这是当用户选择customButtons自定义的按钮时,才执行
console.log('User tapped custom button: ', response.customButton);
}
else {
// You can display the image using either data: if (Platform.OS === 'android') {
source = {uri: response.uri, isStatic: true};
} else {
source = {
uri: response.uri.replace('file://', ''),
isStatic: true
};
} this.setState({
avatarSource: source
});
}
});
显示图片的方法:
<Image source={this.state.avatarSource} style={styles.uploadAvatar} />

当然我们也有不想让用户选择的时候,而是直接就调用相机或者相册,这个组件中还有其它的函数:

// Launch Camera:
ImagePickerManager.ImagePickerManager.launchCamera(options, (response) => {
// Same code as in above section!
}); // Open Image Library:
ImagePickerManager.ImagePickerManager.launchImageLibrary(options, (response) => {
// Same code as in above section!
});

更详细的可以查看它的官网:https://github.com/marcshilling/react-native-image-picker

这个组件只支持从相册中选取一张图片,如果满足不了需求,可以先学习了解一下官方版react-native的demo:里边有CameraRoll可以支持从相册中获取多张图片。

React Native学习-调取摄像头第三方组件:react-native-image-picker的更多相关文章

  1. 【React】学习笔记(一)——React入门、面向组件编程、函数柯里化

    课程原视频:https://www.bilibili.com/video/BV1wy4y1D7JT?p=2&spm_id_from=pageDriver 目录 一.React 概述 1.1.R ...

  2. (转)2019年 React 新手学习指南 – 从 React 学习线路图说开去

    原文:https://www.html.cn/archives/10111 注:本文根据 React 开发者学习线路图(2018) 结构编写了很多新手如何学习 React 的建议.2019 年有标题党 ...

  3. The Road to learn React书籍学习笔记(第二章)

    The Road to learn React书籍学习笔记(第二章) 组件的内部状态 组件的内部状态也称为局部状态,允许保存.修改和删除在组件内部的属性,使用ES6类组件可以在构造函数中初始化组件的状 ...

  4. React Native学习-控制横竖屏第三方组件:react-native-orientation

    在项目中,有时候可能会想使不同的页面显示的横竖屏也不一样,比如前一段我做的<广播体操>的项目,在首页面,肯定是想使页面为竖屏显示,但是播放页面要为横屏显示,即使用户的手机可以转屏,我们的播 ...

  5. react native 第三方组件

    react native 的成功离不开优秀的第三方组件,以下是我见过的一些优秀或者有用的RN第三方组件 按钮 APSL/react-native-button 导航 react-native-simp ...

  6. React Native常用第三方组件汇总--史上最全 之一

    React Native 项目常用第三方组件汇总: react-native-animatable 动画 react-native-carousel 轮播 react-native-countdown ...

  7. React Native常用第三方组件汇总--史上最全[转]

    本文出处: http://blog.csdn.net/chichengjunma/article/details/52920137 React Native 项目常用第三方组件汇总: react-na ...

  8. React Native 项目常用第三方组件汇总

    React Native 项目常用第三方组件汇总 https://www.jianshu.com/p/d9cd9a868764?utm_campaign=maleskine&utm_conte ...

  9. iOS、swift、React Native学习常用的社区、论坛

    <!----iOS> <!----Swift>*IOS开发常用社区:http://code4app.com/ *IOS开发常用社区:http://www.cocoachina. ...

随机推荐

  1. 【转】Android -- Looper.prepare()和Looper.loop()

    Looper.prepare()和Looper.loop() 原文地址:http://blog.csdn.net/heng615975867/article/details/9194219 Andro ...

  2. 用Log4Net记录NHibernate中执行的SQL语句及执行时间

    首页,在web.config中加入以下配置: <configuration> <configSections> <section name="log4net&q ...

  3. Android - Facebook KeyHash 設定

    转自:http://www.dotblogs.com.tw/newmonkey48/archive/2014/04/17/144779.aspx App要使用Facebook 分享時,設要在Faceb ...

  4. Ajax的常用框架有哪些?

    AJAX(Asynchronous JavaScript and XML,异步JavaScript和XML),是创建交互式Web应用的主要开发技术.互联网中也有大量的关于AJAX的框架,本文汇总了最常 ...

  5. wp8 在OnBackKeyPress事件中调用MessageBox.Show()崩溃

    今天写代码的时候遇到一个问题,在wp8中执行下面的代码后,弹出对话框后,停滞一段时间程序退出. protected override void OnBackKeyPress(CancelEventAr ...

  6. (转)用AGG实现高质量图形输出(三)

    转自 :http://www.cnblogs.com/CoolJie/archive/2011/04/27/2030260.html 线段生成器(Span Generator) 我们前面举的例子使用的 ...

  7. GridView 编辑修改

    //点击gridview控件自带的编辑按钮时执行的事件    protected void gvNewsList_RowEditing(object sender, GridViewEditEvent ...

  8. 在C++中使用golang的协程

    开源项目cpp_features提供了一个仿golang协程的stackful协程库. 可以在c++中使用golang的协程,大概语法是这样的: #include <iostream> v ...

  9. Linq lamda表达式Single和First方法

      让我们来看看如何对一个整数数组使用 Single 操作符.这个整数数组的每个元素代表 2 的 1 到 10 次方.先创建此数组,然后使用 Single 操作符来检索满足 Linq Lambda表达 ...

  10. mysql服务器的常规操作

    mysql服务器的常规操作 导读 MySQL是一个小型关系数据库管理系统,目前被广泛的应用在Internet上的中小型网站中,体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,使得许多中小型网站 ...