【发布时间】:2016-03-14 20:00:16
【问题描述】:
我正在尝试将图像放入其包含的视图中,以便我可以拥有无缝的图像网格。问题是resizeMode='contain' 似乎适合屏幕宽度或至少一些更高级别的容器,我需要图像适合每个列表项的大小。
这是样式和结果网格的一个非常丑陋的示例:
样式:
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: 'blue'
},
item: {
flex: 1,
overflow: 'hidden',
alignItems: 'center',
backgroundColor: 'orange',
position: 'relative',
margin: 10
},
image: {
flex: 1
}
})
布局:
<TouchableOpacity
activeOpacity={ 0.75 }
style={ styles.item }
>
<Image
style={ styles.image }
resizeMode='contain'
source={ temp }
/>
</TouchableOpacity>
结果(resizeMode='contain'):
结果(resizeMode='cover'):
如您所见,covered 图像非常大,与整个屏幕一样宽,不适合立即包含的视图。
更新 1:
通过对图像应用比例变换并将其从中心缩小,我能够获得接近我正在寻找的结果:
变换:
transform: [{ scale: 0.55 }]
【问题讨论】:
-
您能否举例说明您希望他们看起来或接近它的样子?谢谢。
-
嘿@NaderDabit 我现在会更新一个例子。
-
所有图片都是正方形的吗?
标签: javascript reactjs flexbox react-native