【发布时间】:2018-05-03 07:17:32
【问题描述】:
【问题讨论】:
标签: css image react-native geometry
【问题讨论】:
标签: css image react-native geometry
这是我为图像的左右位置找到的解决方案:
renderLeftRightImage (item, index) {
var imagePath = item.image?(Strings.BASE_IMAGE_URL+item.image[0].image):'https://placeimg.com/640/480/people';
if(item.position == 'left'){
return(
<View style={{overflow: 'hidden', width : 105, height:210, position : 'absolute', left:80, bottom:62, borderTopLeftRadius:150, borderBottomLeftRadius:150, backgroundColor:'transparent'}}>
<Image style={{width : 210, height:210}} source={{uri:imagePath}}/>
</View>
)
}
else if(item.position == 'right'){
return(
<View style={{overflow: 'hidden', width : 105, height:210, position : 'absolute', right:80, bottom:62, borderTopRightRadius:150, borderBottomRightRadius:150, backgroundColor:'transparent'}}>
<Image style={{width : 210, height:210, position:'absolute', right:0}} source={{uri:imagePath}}/>
</View>
)
}
else{
return null;
}
}
【讨论】:
您可以将overflow CSS prop 与border-radius 组合使用
示例
export default class App extends Component {
render() {
return (
<View style={styles.container}>
<View style={styles.imageContainer}>
<View style={styles.imageWrapper}>
<Image source={{uri: 'https://dummyimage.com/500x500/000/fff.png'}} style={styles.image} />
</View>
</View>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
},
imageContainer: {
alignItems: 'center',
backgroundColor: 'yellow'
},
imageWrapper: {
width: 125, // half of the image width
height: 250,
backgroundColor: 'transparent',
overflow: 'hidden'
},
image: {
width: 250,
height: 250,
borderRadius: 125, // half of the image width
backgroundColor: 'transparent'
}
});
【讨论】:
<View style={{overflow: 'hidden', width : 105, height:210, position : 'absolute', left:80, bottom:62, borderTopLeftRadius:150, borderBottomLeftRadius:150, backgroundColor:'transparent'}}> <Image style={{width : 210, height:210}} source={{uri:imagePath}}/> </View>