需要将Image Bottom设为角落:React Native

时间:2017-09-14 13:20:30

标签: android ios image react-native rounded-corners

我想让图像从底部四舍五入。这是我想要做的: enter image description here

我试图设置 borderRadius ,但它将适用于整个图像而不是底部。

这是我的代码:

<View
        style={{
          backgroundColor: ‘transparent’,
          justifyContent: ‘center’,
          alignItems: ‘center’,
          height: 159,
          width: '100%',
          borderBottomWidth: 70,
          borderBottomColor: ‘red’,
          borderBottomRightRadius: 800,
          borderBottomLeftRadius: 800,
        }}
      />

它将提供如下输出:

enter image description here

我需要设置哪个属性才能在视图底部进行完美回合?

3 个答案:

答案 0 :(得分:2)

你可以在它上面添加一个透明的png框架

你也可以查看它可能会有所帮助the-shapes-of-react-native

<强>更新

这是我通过代码

管理的方式

首先创建此结构

render() {
  return(
    <View style={styles.container} >
      <View style={styles.background} >
        <Image style={styles.image} source={require('./image.jpeg')} />
      </View>
    </View>
  );
}

然后应用此样式

const styles = {
  container: {
    alignSelf: 'center',
    marginTop: 100,
    width: 200,
    overflow: 'hidden', // for hide the not important parts from circle
    margin: 10,
    height: 100,
  },
  background: { // this shape is a circle 
    borderRadius: 400, // border borderRadius same as width and height
    width: 400,
    height: 400,
    marginLeft: -100, // reposition the circle inside parent view
    position: 'absolute',
    bottom: 0, // show the bottom part of circle
    overflow: 'hidden', // hide not important part of image
  },
  image: {
    height: 100, // same width and height for the container
    width: 200,
    position: 'absolute', // position it in circle
    bottom: 0, // position it in circle
    marginLeft: 100, // center it in main view same value as marginLeft for circle but positive
  }
}

这是结果

round shape image for react native

答案 1 :(得分:0)

您可以查看我的存储库,如果它可以帮助您

https://github.com/paraswatts/React_Native_Custom_shape_image_view/tree/master

有一个抓住我挤压了图像的宽度,然后在X轴上缩放

答案 2 :(得分:0)

使用@Mohamed Khalil提到的方法,

const styles = StyleSheet.create({
containerStyle: {
    alignSelf: 'center',
    width: window.width,
    overflow: 'hidden',
    height: window.width / 1.7
},
sliderContainerStyle: {
    borderRadius: window.width,
    width: window.width * 2,
    height: window.width * 2,
    marginLeft: -(window.width / 2),
    position: 'absolute',
    bottom: 0,
    overflow: 'hidden'
},
slider: {
    height: window.width / 1.7,
    width: window.width,
    position: 'absolute',
    bottom: 0,
    marginLeft: window.width / 2,
    backgroundColor: '#9DD6EB'
}});

结果如下。我在这里使用了Dimensionsconst window = Dimensions.get('window');)来使其对不同的屏幕尺寸更具动态性。

enter image description here