Выравнивание изображения по 2 видам фона - PullRequest
1 голос
/ 08 июня 2019

У меня есть два фона с разными цветами. У обоих свои размеры. Над этими фонами мне нужно изображение, выровненное слева, поверх обоих других видов.

как мне это сделать?

export default class MainScreen extends Component {
  render() {
    return (
      <View style={styles.container}>
        <View style={styles.rectangle1}>
               <Image 
        source={require('../assets/dame.png')}
        style = {styles.image}/>
        </View>
        <View style={styles.rectangle2}>
        </View>
      </View>
    )
  }
}

Добавлен пример изображения, что нужно сделать:

Sample to show how it is wanted

1 Ответ

0 голосов
/ 13 июня 2019

Помимо использования absolute позиционирования, вот еще один совет для достижения аналогичной компоновки на большинстве устройств - использование Dimensions и констант для ширины и высоты устройств, которые.

на основе предоставленной информации, вот как будет выглядеть мой дизайн:

////import { Dimensions } from react-native;

const { width: deviceWidth, height: deviceHeight } = Dimensions.get('window');

export default class MainScreen extends Component {
  render() {
    return (
      <View style={{ backgroundColor: 'magenta', height: deviceHeight }}>
        <View
          style={{
            width: deviceWidth * 0.44,
            alignSelf: 'flex-start',
          }}
        >
          <Image 
            source={{ uri: 'https://ui-avatars.com/api/?name=Alice' }}
            style={{ width: '100%', height: '100%' }}
          />
        </View>
        <View
          style={{
            backgroundColor: 'black',
            position: 'absolute',
            width: deviceWidth * 0.56,
            height: deviceWidth * 0.56,
            alignSelf: 'flex-end',
            opacity: 0.7
          }}
        />
        <View
          style={{
            backgroundColor: 'yellow',
            width: deviceWidth * 0.7,
            height: deviceWidth * 0.1,
            position: 'absolute',
            top: deviceHeight * 0.8,
            alignSelf: 'center',
            opacity: 0.8,
          }}
        />
        <View
          style={{
            backgroundColor: 'blue',
            width: deviceWidth,
            height: deviceWidth * 0.14,
            position: 'absolute',
            bottom: 0,
            alignSelf: 'flex-end',
            opacity: 0.8,
          }}
        />
      </View>
    )
  }
}

Я предлагаю вам продолжить эксперименты, чтобы выяснить, какой метод лучше всего подходит для вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...