React-Native使用漸變背景色
阿新 • • 發佈:2022-12-02
在 CSS 中使用漸變只需要用 linear-gradient 就可以,但是在 React-Native 專案中卻不可以直接通過屬性去實現,需要安裝一個 react-native-linear-gradient 才可實現。
首先安裝元件 react-native-linear-gradient
yarn add react-native-linear-gradient
在頁面中使用
import React from 'react';
import {Text, StyleSheet, View, Dimensions} from 'react-native';
import LinearGradinet from 'react-native-linear-gradient';
export default class Home extends React.Component {
render() {
return (
<LinearGradient colors={['#FFD801', '#FF8040', '#F75D59']} style= {styles.linearGradient}>
<Text style={{color:'#ffffff'}}>
Sign in with Facebook
</Text>
</LinearGradient>
);
}
}
const styles = StyleSheet.create({
content: {
justifyContent:'center',
alignItems:'center',
width:200,
height:50,
paddingLeft: 15,
paddingRight: 15,
borderRadius: 5
},
});
效果:
LinearGradient的屬性:
colors
start/end
locations
- colors
An array of at least two color values that represent gradient colors. Example: ['red', 'blue'] sets gradient from red to blue.
至少2個顏色值,用於顏色漸變。 - start
An optional object of the following type: { x: number, y: number }. Coordinates declare the position that the gradient starts at, as a fraction of the overall size of the gradient, starting from the top left corner. Example: { x: 0.1, y: 0.1 } means that the gradient will start 10% from the top and 10% from the left.
可選的物件,形式如: { x: number, y: number }。座標宣告了漸變的開始位置。 - end
Same as start, but for the end of the gradient.
和start一樣,但是漸變的結束位置。
start和end同時存在,漸變的起點和終點的連線,即使漸變的軌跡方向。
start={{ x : 0.0, y : 0.25 }}
end={{ x : 0.5, y : 1.0 }}
- locations
An optional array of numbers defining the location of each gradient color stop, mapping to the color with the same index in colors prop. Example: [0.1, 0.75, 1] means that first color will take 0% - 10%, second color will take 10% - 75% and finally third color will occupy 75% - 100%.
可選陣列,內容是一些列數字,定義了colors中對應的每個漸變顏色的停止位置。
<LinearGradient
start={{ x : 0.0, y : 0 }} end={{ x : 1, y : 0 }}
locations={[ 0.1, 0.7, 1 ]}
colors={[ 'yellow', 'green', '#ff0000' ]}
style={styles.linearGradient}>
<Text style={styles.buttonText}>
Sign in with Facebook
</Text>
</LinearGradient>
image.png
0.1-0.7 是顏色1和顏色2之間漸變的區域,0.7到1是顏色2和顏色3之間漸變的區域。那麼還有個0-0.1區域呢?該區域是顏色1。
locations={[ 0, 0.5, 0.8]},則0-0.5是顏色1和顏色2漸變區域,0.5-0.8是顏色2和顏色3的漸變區域,而0.8-1區域的顏色是顏色3。
-
設定旋轉角度
<LinearGradient
colors={['red', '#375BB1']}
useAngle={true}// 開啟旋轉
angle={90}// 旋轉角度,0的時候為從下到上漸變,按照角度順時針旋轉
angleCenter={{ x: 0.5, y: 0.5}}// 旋轉中心
style={{ height: 50, marginTop: 50 }}>
<View style={{ justifyContent: 'center', alignItems: 'center', height: 50 }}>
<Text style={{ color: '#ffffff', fontSize: 28 }}>Test Screen</Text>
</View>
</LinearGradient>
2人點贊
react-native
作者:涅槃快樂是金
連結:https://www.jianshu.com/p/04a9451dd187
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。