Need to make Image Bottom to corner: React Native

6.2k views Asked by At

I want to make image rounded from bottom of it. Here is what I wanted to make: enter image description here

I have tried to set borderRadius, but it will apply for the whole image not for bottom.

Here is my code:

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

It will give output like this:

enter image description here

Which property do I need to set to make a perfect round on the bottom of view?

3

There are 3 answers

3
Mohamed Khalil On

you can add a png frame transparent with this shape on it

also you can check this it may help the-shapes-of-react-native


Update

here is how I managed do this by code

first you create this structure

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

and then apply this style

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

and here is the results

round shape image for react native

0
katwal-dipak On

Using the approach mentioned by @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'
}});

Here is the result. I used Dimensions (const window = Dimensions.get('window');) here to make it more dynamic to different screen sizes.

enter image description here

0
Paras Watts On

You can check my repository, if it helps you

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

There is a catch I have squeezed the width of image and then scaled it on X-axis