Javascript 在React Native中设置背景色动画
我将如何在React Native中从一种颜色设置动画到另一种颜色。我发现,通过插值动画.Value,可以通过以下方式设置颜色动画:Javascript 在React Native中设置背景色动画,javascript,react-native,Javascript,React Native,我将如何在React Native中从一种颜色设置动画到另一种颜色。我发现,通过插值动画.Value,可以通过以下方式设置颜色动画: var BLACK=0; var-RED=1; var蓝=2; 背景颜色:this.state.color.interpolate({ 输入范围:[黑色、红色、蓝色], 输出范围:['rgb(0,0,0)''rgb(255,0,0)''rgb(0,0255)' }) 及 Animated.timeing(this.state.color,{toValue:RED
var BLACK=0;
var-RED=1;
var蓝=2;
背景颜色:this.state.color.interpolate({
输入范围:[黑色、红色、蓝色],
输出范围:['rgb(0,0,0)''rgb(255,0,0)''rgb(0,0255)'
})
及
Animated.timeing(this.state.color,{toValue:RED}).start();
但是用这个方法,从黑色到蓝色,你必须穿过红色。在混搭中加入更多的颜色,你会在80年代的迪斯科舞厅结束
有没有其他方法可以让你直接从一种颜色切换到另一种颜色 如果您可以在按下按钮的瞬间获得动画颜色值的颜色,那么您可能可以这样做。大概是这样的:
var currentColor=?:
this.state.color=0;
var bgColor=this.state.color.interpolate({
输入范围:[0,1],
outputRange:[currentColor,targetColor]
});
因此,对于每个按钮,您都会设置不同的targetColor。如果您有
动画。Value
让我们假设x
,您可以像这样插入颜色:
render(){
var color=this.state.x.interpolate({
输入范围:[0,300],
输出范围:['rgba(255,0,0,1)''rgba(0255,0,1)'
});
返回(
.使用setValue
和state来控制开始和结束颜色。对于颜色等非数字值,也可以分步插值,如下所示:
使用“复活”进行测试。在您的示例中,您可以使用inputRange:[黑、红、蓝]。如果您将其更改为[黑、蓝]颜色是否按照您预期的方式从黑色变为蓝色?这会起作用,但与我需要的相反。我需要向列表中添加颜色,并根据用户操作从一种颜色过渡到另一种颜色。例如,从黑色到蓝色,然后从蓝色到绿色,然后从绿色到黄色。您解决了这个问题吗?我也是struggli这真的很奇怪,因为它看起来像是一个真正的问题,因为RNBA本地版本可能有一个bug-尝试将此代码从白色插入到蓝色,并得到一个“收到的坏道具”错误与“rgba(255255,1)”,而它期待的是“rgba(255255,1.0)”“.正在调查。啊,我试图在上述代码示例的基础上添加动画,但忘记了使用动画.View而不是常规视图。切换到解决了我的问题。我获得样式属性“backgroundColor”不受本机动画模块的支持。
@onmyway133是否使用本机驱动程序?如果是,请将其设置为False是否仅限我这个答案是否有助于OP解决在不经过颜色B的情况下从颜色A到颜色C的问题?所有这些都是从红色插值到绿色。它没有显示如何在插值范围内直接在颜色之间转换,而不管它们在插值输出范围内的顺序。动画是什么什么颜色?
const animatedBkg = interpolate(scale, {
inputRange: [0, 150],
outputRange: [Animated.color(242, 81, 48), Animated.color(0,0,0)],
// extrapolate: Extrapolate.CLAMP,
})