テストデバイスのカメラロールからサムネイルとしてレンダリングするイメージを取得しようとしています。私は正常にカメラのロールから画像を取り出し、リストビューの一連の画像要素内に表示しましたが、ロードにはかなり時間がかかります。また、React Native文書では、Image要素がレンダリングされる領域の正しいイメージサイズ。React Native - フルサイズの画像の代わりにカメラロールのサムネイルを取得する方法
これはドキュメントからのものです。
iOSは、同じ画像の複数のサイズをカメラロールに保存するため、パフォーマンス上の理由から可能な限り近いものを選択することが非常に重要です。 200x200のサムネイルを表示するときに、完全な品質の3264x2448イメージをソースとして使用したくない場合。正確な一致がある場合、React Nativeがそれを選ぶでしょう。そうでない場合は、近いサイズからサイズを変更するときにぶれを避けるために、少なくとも50%大きい最初のものを使用します。これらはすべてデフォルトで行われるので、面倒な(そしてエラーが起こりやすい)コードを書いて心配する必要はありません。 https://facebook.github.io/react-native/docs/image.html#best-camera-roll-image
イメージを読み取るために使用しているコードは非常に簡単です。
CameraRoll.getPhotos({
first: 21,
assetType: 'Photos'
}, (data) => {
console.log(data);
var images = data.edges.map((asset) => {
return {
uri: asset.node.image.uri
};
});
this.setState({
images: this.state.images.cloneWithRows(images)
});
},() => {
this.setState({
retrievePhotoError: messages.errors.retrievePhotos
});
});
そして、それは私がこれらの機能を持ってレンダリングします。
renderImage(image) {
return <Image resizeMode="cover" source={{uri: image.uri}} style={[{
height: imageDimensions, // imageDimensions == 93.5
width: imageDimensions
}, componentStyles.thumbnails]}/>;
},
render() {
<ListView
automaticallyAdjustContentInsets={false}
contentContainerStyle={componentStyles.row}
dataSource={this.state.images}
renderRow={this.renderImage}
/>
}
私はここで何をしないのですか?私はおかしくなりそうだ!!!
JavaScriptのソリューションはまだ出ていますか? –