Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在React Native中设置背景色动画_Javascript_React Native - Fatal编程技术网

Javascript 在React Native中设置背景色动画

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

我将如何在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}).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,
})