React Native - 图像半圆(使用CSS)

时间:2018-05-03 07:17:32

标签: css image react-native geometry

我有一个圆形图像,我需要在半圆中使用 React Native 显示,如附件中显示的 。请帮助CSS。

enter image description here

3 个答案:

答案 0 :(得分:0)

您可以使用 borderBottomLeftRadius和borderTopLeftRadius 的样式创建半圆。您可以创建一个图像半圆,如下所示: -

<Image 
    source={{"uri": 'https://www.w3schools.com/html/pulpitrock.jpg'}}
    style={{
        margin: 30, 
        height: 100, // change these values according to your requirement.
        width: 50, 
        borderTopLeftRadius: 50, 
        borderBottomLeftRadius: 50
    }}
/>

您可以根据需要和要求更改这些值。

答案 1 :(得分:0)

您可以将overflow CSS道具与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'
  }
});

答案 2 :(得分:0)

这是我找到的图像左右两个位置的解决方案:

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;
    }
}