[add] new Image resize modes

This commit is contained in:
Nicolas Gallagher
2016-07-16 19:23:59 -07:00
parent 66b0387023
commit 2440e74e99
4 changed files with 34 additions and 27 deletions
+1 -1
View File
@@ -46,7 +46,7 @@ Invoked when load either succeeds or fails,
Invoked on load start.
**resizeMode**: oneOf('contain', 'cover', 'none', 'stretch') = 'stretch'
**resizeMode**: oneOf('center', 'contain', 'cover', 'none', 'repeat', 'stretch') = 'stretch'
Determines how to resize the image when the frame doesn't match the raw image
dimensions.
+22 -25
View File
@@ -1,5 +1,5 @@
import React from 'react';
import { storiesOf, action } from '@kadira/storybook';
import { storiesOf, action, addDecorator } from '@kadira/storybook';
import { ActivityIndicator, Image, Platform, StyleSheet, Text, View } from 'react-native'
/**
@@ -499,30 +499,26 @@ const examples = [
source={image}
/>
</View>
{ Platform.OS === 'ios' ?
<View style={styles.leftMargin}>
<Text style={[styles.resizeModeText]}>
Repeat
</Text>
<Image
style={styles.resizeMode}
resizeMode={Image.resizeMode.repeat}
source={image}
/>
</View>
: null }
{ Platform.OS === 'android' ?
<View style={styles.leftMargin}>
<Text style={[styles.resizeModeText]}>
Center
</Text>
<Image
style={styles.resizeMode}
resizeMode={Image.resizeMode.center}
source={image}
/>
</View>
: null }
<View style={styles.leftMargin}>
<Text style={[styles.resizeModeText]}>
Repeat
</Text>
<Image
style={styles.resizeMode}
resizeMode={'repeat'}
source={image}
/>
</View>
<View style={styles.leftMargin}>
<Text style={[styles.resizeModeText]}>
Center
</Text>
<Image
style={styles.resizeMode}
resizeMode={'center'}
source={image}
/>
</View>
</View>
</View>
);
@@ -654,5 +650,6 @@ var styles = StyleSheet.create({
examples.forEach((example) => {
storiesOf('<Image>', module)
.addDecorator((renderStory) => <View>{renderStory()}</View>)
.add(example.title, () => example.render())
})
+2
View File
@@ -1,9 +1,11 @@
import keyMirror from 'fbjs/lib/keyMirror'
const ImageResizeMode = keyMirror({
center: null,
contain: null,
cover: null,
none: null,
repeat: null,
stretch: null
})
+9 -1
View File
@@ -35,7 +35,7 @@ class Image extends Component {
onLoad: PropTypes.func,
onLoadEnd: PropTypes.func,
onLoadStart: PropTypes.func,
resizeMode: PropTypes.oneOf(['contain', 'cover', 'none', 'stretch']),
resizeMode: PropTypes.oneOf(['center', 'contain', 'cover', 'none', 'repeat', 'stretch']),
source: ImageSourcePropType,
style: StyleSheetPropType(ImageStylePropTypes),
testID: createReactDOMComponent.propTypes.testID
@@ -207,6 +207,10 @@ const styles = StyleSheet.create({
})
const resizeModeStyles = StyleSheet.create({
center: {
backgroundSize: 'auto',
backgroundPosition: 'center'
},
contain: {
backgroundSize: 'contain'
},
@@ -216,6 +220,10 @@ const resizeModeStyles = StyleSheet.create({
none: {
backgroundSize: 'auto'
},
repeat: {
backgroundSize: 'auto',
backgroundRepeat: 'repeat'
},
stretch: {
backgroundSize: '100% 100%'
}