我试图创建阵营本土动画“视差”的形象。我有一个静态背景图像和两个单独的图像作为覆盖。目标是创建类似于本网站上发现的图像http://www.digitalhands.net/或https://www.galaxia.co/。我甚至从哪里开始呢?起初,我很高兴它从左向右移动等等。之后,我想使它能够使用陀螺仪获得用于动画化图像的x和y值。创建的视差图像作出反应原住民
1
A
回答
1
视差效果在于不同的速度运动图像和在相同方向上,使得“接近”的目的是,它移动的速度越快,这产生三个维度的错觉。
要在反应本机中实现此效果,可以使用Animated库将一个图像的位置作为另一个图像位置的一部分进行插值。
有关示例起见,让我们假设要在垂直方向上的视差效应,并且所有图像被垂直地定位在0。
首先,你会在你的组件的状态需要一个动画值:
this.state = {
...
imagePos: new Animated.Value(0)
}
然后,对于每个Image
风格,你可以添加在其y轴上的变换:
<Animated.Image src={...} style={[firstImageStyle, {
transform: [{translateY: this.state.imagePos.interpolate({
inputRange: [0, 1],
outputRange: [0, 100]
})}]
}]}
<Animated.Image src={...} style={[secondImageStyle, {
transform: [{translateY: this.state.imagePos.interpolate({
inputRange: [0, 1],
outputRange: [0, 50]
})}]
}]}
注使用Animated.Image
而不是Image
来使图像具有生动性。
当imagePos
的值介于0和1之间时,会导致第一个图像在0-100 dp之间水平移动,第二个图像在0-50 dp之间移动。
要更改动画值的值,您可以使用Animated
库中的任何函数(定时,弹簧,衰减等),或者将其附加到某个本地事件。
动画库文档有更多的细节。对于陀螺仪的使用,我没有深入细节,但你可以使用react-native-sensors或react-native-motion-manager来获得你需要的值,并将它们附加到动画中。
0
通过使用包像https://github.com/react-native-sensors/react-native-sensors我设法拿到了X,Y,Z的手机位置的值,并以动画的图像。
constructor() {
super();
this.state = {
x: 0,
y: 0,
z: 0,
};
}
componentWillMount() {
// Normal RxJS functions
accelerationObservable
.subscribe(({x, y, z}) => this.setState({
x: x,
y: y,
z: z,
}));
}
render() { return (
<Image style={{left: this.state.x + this.state.y, top: this.state.z}}
source={require('image.png')}/>
)
}
相关问题
- 1. 差异性做出反应原住民
- 2. 要求图像动态地做出反应原住民
- 3. 与原住民的问题作出反应
- 4. 使用CoreML与之反应原住民
- 5. 滤波元件上反应原住民
- 6. 入门反应原住民,HTTP请求
- 7. 阵营原住民 - 在图像
- 8. 阵营原住民 - 图像缓存
- 9. 产生反应原型链误差原住民可枚举密钥
- 10. 玩笑做出反应原住民如何测试index.PLATFORM.js
- 11. 加密在sensivite数据做出反应原住民和世博
- 12. 创建一个旋转的文字条幅(梯形)的反应原住民
- 13. 不能得到`取()`工作中反应原住民
- 14. 部署和利润 - 了解步骤10中作出反应原住民入门
- 15. 阵营原住民 - 制作背景图像避免键盘
- 16. 的水平“粘性”中心元素反应原住民的ListView
- 17. 反应,和/阵营原住民全球范围
- 18. touchableopacity onpress功能(是不是一个函数)反应原住民
- 19. 阵营原住民 - BVLinearGradient - “反应/ RCTViewManager.h”找不到文件
- 20. 风格不重渲染上反应原住民
- 21. 如何通过状态成分反应原住民
- 22. 如何解决AppRegistry.registerComponent错误反应原住民
- 23. UWP .NET原住民问题
- 24. 阵营原住民们ShoutEm UI工具箱图标不工作
- 25. 到在同时运行多个setTimeout的有效的方式作出反应原住民
- 26. 阵营的列原住民FlatList,
- 27. SVG图像反应原生
- 28. 如何有效地搜索数据与之反应原住民的ListView
- 29. 创建offlne绑定反应原生失败显示图像
- 30. 阵营原住民 - 网页视图视频重装本身父状态变化
想你的解决方案,但'imagePos:Animated.Value(0)'抛出一个错误。 '不能调用类的function' – Lemoncide
@Lemoncide忘了'new',编辑这个工作完全再加上Animated.timing属性和反应本地传感器库答案 – Kraylog
。正是我需要的。 – Lemoncide