反应本机相机胶卷

2023-12-26

没有注意到太多关于如何使用 React Native 中的 CameraRoll 库的示例代码/指南,我发现文档中的示例有点“模糊”且令人困惑。

我第一次使用任何 API,所以我也不完全理解我应该如何使用该库。到目前为止,我已经将其导入为:

    import {
  AppRegistry,
  Image,
  StyleSheet,
  TextInput,
  Navigator,
  CameraRoll,
  Alert,
  TouchableHighlight,
  Button,
  Text,
  View
} from 'react-native';

与“链接”等很困惑,但据我所知,这应该是我使用该库所需要做的全部事情。

And how我是否可以将它用于一些简单的事情,例如单击按钮打开图库并让用户选择然后应在应用程序中显示的图像。

预先感谢,希望有人有一些代码来澄清这一点。


下面是一些示例代码,它将从相机胶卷中抓取前 25 张照片并将它们显示在ScrollView。我根据网上找到的示例进行了修改here https://thebhwgroup.com/blog/accessing-iphone-camera-roll-images-react-native

import React, { Component, PropTypes } from 'react'
import {
  CameraRoll,
  Image,
  ScrollView,
  StyleSheet,
  TouchableHighlight,
  View,
} from 'react-native';

class CameraRollView extends Component {

  constructor(props) {
    super(props)
    var controls = props.controls
    this.state = {
      images: [],
      selected: '',
      fetchParams: { first: 25 },
      groupTypes: 'SavedPhotos',
    }
    this._storeImages = this._storeImages.bind(this)
    this._logImageError = this._logImageError.bind(this)
    this._selectImage = this._selectImage.bind(this)
  }

  componentDidMount() {
    // get photos from camera roll
    CameraRoll.getPhotos(this.state.fetchParams, this._storeImages, this._logImageError);
  }

  // callback which processes received images from camera roll and stores them in an array
  _storeImages(data) {
    const assets = data.edges;
    const images = assets.map( asset => asset.node.image );
    this.setState({
        images: images,
    });
  }

  _logImageError(err) {
      console.log(err);
  }

  _selectImage(uri) {
    // define whatever you want to happen when an image is selected here
    this.setState({
      selected: uri,
    });
    console.log('Selected image: ', uri);
  }

  render() {
    return (
      <View style={{flex: 1, backgroundColor: 'white'}}>
        <ScrollView style={styles.container}>
            <View style={styles.imageGrid}>
            { this.state.images.map(image => {
              return (
               <TouchableHighlight onPress={() => this._selectImage(image.uri)}>
                 <Image style={styles.image} source={{ uri: image.uri }} />
               </TouchableHighlight>
             );
            })}
            </View>
        </ScrollView>
      </View>
    );
  }
}

const styles = StyleSheet.create({
  container: {
      flex: 1,
      backgroundColor: '#F5FCFF',
  },
  imageGrid: {
      flexDirection: 'row',
      flexWrap: 'wrap',
      justifyContent: 'center'
  },
  image: {
      width: 100,
      height: 100,
      margin: 10,
  },
});

export default CameraRollView
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

反应本机相机胶卷 的相关文章

随机推荐

  • 如何在palm mojo中使用jquery?

    我该如何才能在我的 palm mojo 应用程序中使用 jquery 查看这个问题 https stackoverflow com questions 1545773 palm pre frameworks 尤其是评论 编辑回应评论 我对P
  • 是否可以匹配React Router 4中路由的#部分

    在我的应用程序中 我想将路径和哈希与不同的组件相匹配 例如 pageA modalB 将显示 PageA 作为主页 模态 B 位于顶部 我尝试了以下方法 其中包含路径属性的许多变体
  • 无法从 Listvew.Resources 内部访问视图模型属性

    我正在尝试将 SelectedItem 绑定到视图 但是当视图位于资源块内时 视图无法访问视图模型 当数据上下文重新分配给子级时 绑定适用于文本块 但不适用于用户控件 NoteView 我是否缺少任何绑定 PFB 修改了 整个 代码和内联注
  • 衡量 React Native 应用程序的性能

    我需要测量 React Native 应用程序的性能 最好的工具是什么 我在谷歌浏览器中尝试了谷歌跟踪 并在 iOS 平台的 mac 中尝试了 Instruments 但这些显示了很多无组织的数据 我实现了一些工具来帮助我检查应用程序的性能
  • jQuery.parent() 似乎不起作用

    parent 不返回我指定的父元素 我没有发现我的代码或 html 有任何问题 JavaScript var vehicle function return init function var that this jQuery vehicl
  • Facebook 营销 API。地理搜索

    我正在尝试从 Facebook 获取一个国家 地区所有城市的列表 我从 v2 9 的 FB 文档开始 Facebook 营销 API https developers facebook com docs marketing api targ
  • 从 Windows 批处理文件将空白行回显到控制台 [重复]

    这个问题在这里已经有答案了 当从 Windows 批处理文件将状态消息输出到控制台时 我想输出空行分解输出 我该怎么做呢 以下三个选项中的任何一个都适合您 echo echo echo 例如 echo off echo There will
  • 在 Heroku 上安装 PyODBC 时找不到 sql.h

    我正在尝试在 Heroku 上安装 PyODBC 但我得到fatal error sql h No such file or directorypip 运行时的日志中 我该如何修复这个错误 要跟进下面的答案 Ubuntu 的示例 sudo
  • Azure Functions RunOnStartUp 在配置中设置而不是在编译时设置?

    我有一个 Azure 计时器触发函数 计划在生产中每 3 个月运行一次 然而 在测试环境中 我希望它在每次触发时在启动时运行 目前我有 TimerTrigger TimerInterval RunOnStartup false 我真的不想改
  • 使用 dplyr 和 rollapply 在数据框中滚动预测

    我的第一个问题在这里 我的目标是 给定一个带有预测变量的数据框 每列一个预测变量 行观察值 使用 lm 拟合回归 然后使用滚动窗口使用最后一个观察值来预测值 数据框如下所示 gt DfPredictor 1 40 Y X1 X2 X3 X4
  • 为什么人们一致推荐使用 appConfig 而不是使用设置文件? (。网)

    我经常看到这样的问题的答案 我应该如何在我的 NET 应用程序中存储设置 是通过手动向 app config 或 web config 添加条目来编辑 app config 文件 如下所示
  • 参数“ContactsCtrl”不是函数,未定义

    我在 AngularJS 路由和控制器中遇到问题 这是代码 索引 html div div index js var myApp angular module contacts
  • 水豚服务器和浏览器错误,服务器上没有任何痕迹

    由于某种原因 我的黄瓜测试之一似乎在 poltergeist 驱动程序和 Rails 服务器上都失败了 我得到了浏览器崩溃的完整跟踪信息 但服务器端几乎没有任何信息 当我打开水豚屏幕截图时 我只看到 内部服务器错误 未定义的方法name对于
  • 如何在ckeditor5中的`a`标签中添加“target”属性?

    我已经创建了自己的链接插件 现在我想添加一些其他属性a插件生成的标签 例如target rel 但我无法完成它 这是我的转换器插件代码 我应该添加哪些转换器以便a标签可以支持其他属性吗 license Copyright c 2003 20
  • C++ WinAPI 后台窗口截图

    我想截取没有焦点的窗口的屏幕截图 我的功能适用于某些窗口 但不适用于所有窗口 我不知道为什么 我尝试用它来捕获 Bluestacks App Player 的窗口 效果非常好 但对于 Nox App Player 和其他一些游戏来说 它根本
  • 简化具有重复关联类型限制的 where 子句

    我编写了以下函数来对迭代器求和 use std ops Add fn sum iter i s I init I Item gt I Item where I Iterator Clone i Item Add i i
  • Solr 字段崩溃

    I read http wiki apache org solr FieldCollapsing http wiki apache org solr FieldCollapsing 我尝试了查询 我并没有看到这个领域崩溃 我的意思是我看到了
  • SSRS 的自动化部署选项

    我的任务是研究如何自动化 SSRS 2012 报告的部署过程 有什么好的工具吗 我正在考虑类似按一个按钮 报告就会被部署的事情 Thanks 为了部署我们的 SSRS 报告 我们使用这个可爱的 powershell 项目 https git
  • std::reference_wrapper 和简单指针有什么区别?

    为什么需要有std reference wrapper http en cppreference com w cpp utility functional reference wrapper 应该用在哪里 它与简单的指针有什么不同 它的性能
  • 反应本机相机胶卷

    没有注意到太多关于如何使用 React Native 中的 CameraRoll 库的示例代码 指南 我发现文档中的示例有点 模糊 且令人困惑 我第一次使用任何 API 所以我也不完全理解我应该如何使用该库 到目前为止 我已经将其导入为 i