React-Native ListView加载图片淡入淡出效果的组件

本文介绍了一种React Native环境下实现图片淡入淡出效果的方法。通过自定义组件AniImage,利用Animated.Value和interpolate函数,实现了图片加载时平滑过渡的视觉效果。文章还提供了具体的使用案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天练习项目中需要给listview在加载图片时增加一个淡入淡出的效果,因此干脆就自己封装了一个组件:

 1 'use strict'
 2 
 3 import React from 'react-native'
 4 
 5 var {
 6   Animated,
 7   PropTypes
 8 } = React
 9 
10 class AniImage extends React.Component {
11   static propTypes = {
12     url: PropTypes.string,
13     inputRange: PropTypes.array,
14     outputRange: PropTypes.array
15   };
16   render () {
17     var { style, url, inputRange, outputRange } = this.props
18     this._animatedValue = new Animated.Value(0)
19     let interpolatedColorAnimation = this._animatedValue.interpolate({
20       inputRange: inputRange,
21       outputRange: outputRange
22     })
23     return (
24       <Animated.Image
25         onLoadEnd={() => {
26           Animated.timing(this._animatedValue, {
27             toValue: 100,
28             duration: 500
29           }).start()
30         }}
31         source={{uri: url}}
32         style={[style, {opacity: interpolatedColorAnimation}]} />
33     )
34   }
35 }
36 
37 module.exports = AniImage

那么如何调用呢?

一、导入 AniImage

二、调用

1 <AniImage
2  inputRange={[0, 100]}
3  outputRange={[0, 1]}
4  style={styles.aniImage}
5  url={'http://192.168.6.5:8888/getImage?imgName=' + commidities.imgPath1} />

这样就看到想要的效果啦。

https://github.com/weifengzz/GuoKu

在github上可以看到我的完整项目哦。 

转载于:https://www.cnblogs.com/weifengzz/p/5165862.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值