React native 如何在react native image picker中提供仅从库中选择图像的选项?

React native 如何在react native image picker中提供仅从库中选择图像的选项?,react-native,react-native-android,react-native-image-picker,React Native,React Native Android,React Native Image Picker,下面的代码给出了显示摄像头的弹出窗口或从gallery中选择。我不想在这个相机选项。我想在调用此函数时启动gallery。有办法吗 import ImagePicker from 'react-native-image-picker'; function selectImageFromGallery() { const options = { title: 'Select Avatar', storageOptions: { skipBackup: true, path

下面的代码给出了显示摄像头的弹出窗口或从gallery中选择。我不想在这个相机选项。我想在调用此函数时启动gallery。有办法吗

import ImagePicker from 'react-native-image-picker';

function selectImageFromGallery() {
const options = {
  title: 'Select Avatar',
  storageOptions: {
    skipBackup: true,
    path: 'images',
  },
};
 
ImagePicker.showImagePicker(options, (response) => {
  console.log('Response = ', response);
 
  if (response.didCancel) {
    console.log('User cancelled image picker');
  } else if (response.error) {
    console.log('ImagePicker Error: ', response.error);
  } else if (response.customButton) {
    console.log('User tapped custom button: ', response.customButton);
  } else {
    const source = { uri: response.uri };
  }
});}

要从库中获取图像,请使用以下代码:

  var options = {
            title: 'Select Image',
            allowsEditing: false,
            quality:0.9,
            noData: true,
            maxWidth:1200,
            maxHeight:1200,
            mediaType: "photo",
            customButtons: [
              { name: 'customOptionKey', title: 'Choose Photo from Custom Option' },
            ],
            storageOptions: {
                skipBackup: true,
                cameraRoll: false
            },
          };

          ImagePicker2.launchImageLibrary(options, response => {
            console.log('Response = ', response);
      
            if (response.didCancel) {
              console.log('User cancelled image picker');
            } else if (response.error) {
              console.log('ImagePicker Error: ', response.error);
            } else if (response.customButton) {
              console.log('User tapped custom button: ', response.customButton);
              alert(response.customButton);
            } else {
              let source = response;
              // You can also display the image using data:
              // let source = { uri: 'data:image/jpeg;base64,' + response.data };
              this._sendpic(response.uri);
            }
          });
并使用以下代码从相机获取图像:


        var options = {
            title: 'Select Image',
            allowsEditing: false,
            quality:0.9,
            noData: true,
            maxWidth:1200,
            maxHeight:1200,
            mediaType: "photo",
            customButtons: [
              { name: 'customOptionKey', title: 'Choose Photo from Custom Option' },
            ],
            storageOptions: {
                skipBackup: true,
                cameraRoll: false
            },
          };

          ImagePicker2.launchCamera(options, response => {
            console.log('Response = ', response);
      
            if (response.didCancel) {
              console.log('User cancelled image picker');
            } else if (response.error) {
              console.log('ImagePicker Error: ', response.error);
            } else if (response.customButton) {
              console.log('User tapped custom button: ', response.customButton);
              alert(response.customButton);
            } else {
              let source = response;
              // You can also display the image using data:
              // let source = { uri: 'data:image/jpeg;base64,' + response.data };
              this._sendpic(response.uri);
            }
          });

有关更多信息,请参阅此链接:

使用launchImageLibrary而不是showImagePicker。它将直接询问gallery选项

ImagePicker.launchImageLibrary(options, (response) => {
  console.log('Response = ', response);
 
  if (response.didCancel) {
    console.log('User cancelled image picker');
  } else if (response.error) {
    console.log('ImagePicker Error: ', response.error);
  } else if (response.customButton) {
    console.log('User tapped custom button: ', response.customButton);
  } else {
    const source = { uri: response.uri };
  }
});

以下是从
2.x.x
迁移到
3.x.x
时需要更改的两行代码:

//之前,2.x.x
从“react native image picker”导入ImagePicker;
ImagePicker.showImagePicker(选项,响应=>{
...
});
//之后,3.x.x
从“react native image picker”导入{launchCamera,launchImageLibrary};
启动ImageLibrary(选项,响应=>{
...
});