Android 面具无法正常工作
const outerRadius = rem(size)
const segments = rem(size)
const id = Date.now().toString()
const segmentsArray = []
const gradientsArray = []
for (let i = 0; i < segments; i++) {
const startAngle = (i / segments) * 360 - 90
const endAngle = ((i + 1) / segments) * 360 - 90
const largeArc = endAngle - startAngle >= 180 ? 1 : 0
const x1 = outerRadius + outerRadius * Math.cos((Math.PI * startAngle) / 180)
const y1 = outerRadius + outerRadius * Math.sin((Math.PI * startAngle) / 180)
const x2 = outerRadius + outerRadius * Math.cos((Math.PI * endAngle) / 180)
const y2 = outerRadius + outerRadius * Math.sin((Math.PI * endAngle) / 180)
segmentsArray.push(
<Path
key={i}
d={M ${outerRadius} ${outerRadius} L ${x1} ${y1} A ${outerRadius} ${outerRadius} 0 ${largeArc} 1 ${x2} ${y2} Z}
stroke="none"
fill={url(#${id}-grad-${i})}
/>,
)
const fromOpacity = i / segments
const toOpacity = (i + 1) / segments
gradientsArray.push(
<LinearGradient
key={i}
id={${id}-grad-${i}}
x1="0%"
y1="0%"
x2="0%"
y2="100%">
,
)
}
const rotation = useSharedValue(0)
const animatedStyle = useAnimatedStyle(() => ({
transform: [{ rotate: ${rotation.value}deg }],
}))
内容来源: software-mansion/react-native-svg