【发布时间】:2018-05-08 19:12:38
【问题描述】:
imagePicker 组件适用于 iOS 和 Android。
纵横比在 android 上完美运行,但在 iOS 上不适用。我正在使用 create-react-native-app,我不想弹出并使用另一个包。
我需要创建三个裁剪选项 - 横向、方形和纵向。现在我只能得到方形图像。
从相机拍照时,我得到宽度和高度的正方形尺寸,但从图库中选择时得到原始图像尺寸。
我正在使用一段示例代码。让我知道可以做些什么来解决这个问题,或者我可以用另一个包来实现这个而不弹出。非常感谢。
import React, { Component } from 'react';
import { Button, Text, ScrollView, StyleSheet } from 'react-native';
import { ImagePicker, Permissions, Constants } from 'expo';
export default class App extends Component {
state = {
result: null,
};
askPermissionsAsync = async () => {
await Permissions.askAsync(Permissions.CAMERA);
await Permissions.askAsync(Permissions.CAMERA_ROLL);
// you would probably do something to verify that permissions
// are actually granted, but I'm skipping that for brevity
};
useLibraryHandler = async () => {
await this.askPermissionsAsync();
let result = await ImagePicker.launchImageLibraryAsync({
allowsEditing: true,
aspect: [12, 3],
base64: false,
});
console.log(result.width, result.height, "result");
this.setState({ result });
};
useCameraHandler = async () => {
await this.askPermissionsAsync();
let result = await ImagePicker.launchCameraAsync({
allowsEditing: true,
aspect: [12, 3],
base64: false,
});
console.log(result.width, result.height, "result");
this.setState({ result });
};
render() {
return (
<ScrollView style={{flex: 1}} contentContainerStyle={styles.container}>
<Button title="launchCameraAsync" onPress={this.useCameraHandler} />
<Button
title="launchImageLibraryAsync"
onPress={this.useLibraryHandler}
/>
<Text style={styles.paragraph}>
{JSON.stringify(this.state.result)}
</Text>
</ScrollView>
);
}
}
【问题讨论】:
标签: react-native expo