Подтвердить что ты не робот

Как установить фоновый цвет прозрачного изображения в React Native

Это стиль представления, который я использовал

backCover: {
  position: 'absolute',
  marginTop: 20,
  top: 0,
  bottom: 0,
  left: 0,
  right: 0,
}

В настоящее время он имеет белый фон. Я могу изменить backgroundColor, как я хочу, как '#343434', но он принимает только шестнадцатеричное значение max 6 для цвета, поэтому я не могу дать непрозрачность, например '#00ffffff'. Я попытался использовать непрозрачность, подобную этой

backCover: {
  position: 'absolute',
  marginTop: 20,
  top: 0,
  bottom: 0,
  left: 0,
  right: 0,
  opacity: 0.5,
}

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

4b9b3361

Ответ 1

Используйте rgba значение для backgroundColor.

Например,

backgroundColor: 'rgba(52, 52, 52, 0.8)'

Это устанавливает его в серый цвет с непрозрачностью 80%, который получается из десятичной точки непрозрачности, 0.8. Это значение может быть от 0.0 до 1.0.

Ответ 2

Следующее работает отлично:

backgroundColor: 'rgba(52, 52, 52, alpha)'

Вы также можете попробовать:

backgroundColor: 'transparent'

Ответ 3

Попробуйте это backgroundColor: '#00000000' он установит прозрачный цвет фона, следует шестнадцатеричные коды #rrggbbaa

Ответ 4

Вы должны знать о текущих конфликтах, которые существуют с iOS и RGBA фонами.

Описание: публичный React Native в настоящее время предоставляет тень слоя iOS свойства более или менее напрямую, однако существует ряд проблемы с этим:

1) Производительность при использовании этих свойств по умолчанию низкая. Это потому что iOS вычисляет тень, получая точную пиксельную маску представление, включая любой полупрозрачный контент, и все его подпредставления, который очень загружает процессор и GPU. 2) Свойства тени iOS делают не соответствуют синтаксису или семантике стандарта CSS box-shadow, и вряд ли удастся реализовать на Android. 3) Мы не выставить свойство layer.shadowPath, которое имеет решающее значение для получения хорошая производительность из теней слоев.

Эта разница решает проблему номер 1) путем реализации по умолчанию shadowPath, который соответствует границе вида для видов с непрозрачным фон. Это улучшает производительность теней за счет оптимизации общий случай использования. Я также восстановил цвет фона распространение для представлений, у которых есть теневые опоры - это должно помочь убедитесь, что этот лучший сценарий встречается чаще.

Для представлений с явным прозрачным фоном тень будет продолжайте работать как раньше (shadowPath останется неустановленным, и тень будет получена точно из пикселей вида и его подпредставления). Это наихудший путь производительности, однако, так что вы должны избегать этого, если это абсолютно необходимо. Поддержка этого может быть отключен по умолчанию в будущем или вообще удален.

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

Проблема № 2) будет решена в будущем diff, возможно, переименование свойств iOS shadowXXX в boxShadowXXX и изменение синтаксис и семантика, соответствующие стандартам CSS.

Задача № 3) теперь в основном спорная, так как мы генерируем shadowPath автоматически. В будущем мы можем предоставить специфическую для iOS опору для установки путь явно, если есть потребность в более точном контроле тень.

Отзыв: weicool

Commit: https://github.com/facebook/react-native/commit/e4c53c28aea7e067e48f5c8c0100c7cafc031b06