我正在尝试创建一个带有文本的图像,为了清楚地看到文本,我需要使图像变暗。另外(不确定它是否重要)我需要背景图像是可触摸的。这个问题在这里被问了好几次,我看到了一些答案,但没有一个对我有用,所以我想知道我是否在这里遗漏了一些更重要的东西。
我的代码如下:
<View style={postStyles.container}>
<TouchableOpacity onPress={() =>
this.props.navigation.navigate('AnotherWindow')}>
<ImageBackground source={require('../../assets/images/my_img.jpg')}
style={{width: '100%', height: 150}}>
<Text style={postStyles.title} numberOfLines={2}>
My text
</Text>
</ImageBackground></TouchableOpacity>
Run Code Online (Sandbox Code Playgroud)
环顾四周,我尝试了以下解决方案:
上述解决方案都不起作用,从某种意义上说,背景图像根本没有改变,所以我想知道我是否遗漏了一些更重要的东西。
谢谢!
如果任何人仍然遇到 ImageBackground 组件的问题,这就是我解决它的方法,基本上我在图像背景中设置了一个视图,该视图具有使图像变暗的 backgroundColor。
<ImageBackground
source={Images.background}
style={styles.imageBackground}
>
<View style={styles.innerContainer}>
{content}
</View>
</ImageBackground>
const styles = StyleSheet.create({
imageBackground: {
height: '100%',
width: '100%'
},
innerContainer: {
flex: 1,
backgroundColor: 'rgba(0,0,0, 0.60)'
},
});
Run Code Online (Sandbox Code Playgroud)
您只需将tintColor 添加到ImageBackground imageStyle 即可。十分简单!
<TouchableOpacity onPress={() => this.props.navigation.navigate('AnotherWindow')}>
<ImageBackground source={require('../../assets/images/my_img.jpg')}
style={{width: '100%', height: 150}}
imageStyle={{tintColor: 'rgba(255,0,0,0.5)'}}>
<Text style={postStyles.title} numberOfLines={2}>
My text
</Text>
</ImageBackground>
</TouchableOpacity>
Run Code Online (Sandbox Code Playgroud)
小智 3
如果你想让图像变暗,你需要该Image组件并使用tintColor属性,如下所示:
<Image source={require('./your_image.png')} style={{ tintColor: 'cyan' }}>
Run Code Online (Sandbox Code Playgroud)
此tintColor道具仅适用于Image组件 not ImageBackground,如果您想在组件上添加文本Image,则需要使用position: 'absolute'或 来定位该文本'relative'
<View style={postStyles.container}>
<TouchableOpacity
onPress={() => his.props.navigation.navigate('AnotherWindow')}>}
>
<Image
source={require('./my_image.png')}
resizeMode="contain"
style={{ width: '100%', height: 150, tintColor: 'cyan' }}
/>
<Text style={postStyles.title} numberOfLines={2}>
My text
</Text>
</TouchableOpacity>
</View>
Run Code Online (Sandbox Code Playgroud)
另外,如果你实现这种方法,你需要计算每个设备的屏幕尺寸,那么你需要从react-native检查这个其他组件: https: //facebook.github.io/react-native /文档/尺寸
请告诉我这是否有效:D
| 归档时间: |
|
| 查看次数: |
3493 次 |
| 最近记录: |