gpt4 book ai didi

react-native - 使用 resizeMode = contain 时的图像对齐

转载 作者:行者123 更新时间:2023-11-30 10:04:50 27 4
gpt4 key购买 nike

我正在使用 React Native 的图像标签来显示宽度和高度可变的图像。我已将图像设置为 100x50 并设置 resizeMode = contain 几乎完美地工作,但是如果调整图像大小,它会在垂直和水平方向上完全居中。这种行为可以改变吗?样机截图:

enter image description here

红色框表示设置为 100x50 的图像元素。笔记本电脑图片代表可变宽度/高度图片。您会注意到该行为正在插入所有内容垂直或水平居中。

在第二个示例中,我希望将占据 100% 高度和大约一半宽度的图片推向左对齐。这可能吗?

谢谢!

最佳答案

所有 - 为了将来可能节省一些时间,这是我想出的一种快速而肮脏的方法来解决这个问题:

logoSize(width, height) {
var maxWidth = 110;
var maxHeight = 30;

if (width >= height) {
var ratio = maxWidth / width;
var h = Math.ceil(ratio * height);

if (h > maxHeight) {
// Too tall, resize
var ratio = maxHeight / height;
var w = Math.ceil(ratio * width);
var ret = {
'width': w,
'height': maxHeight
};
} else {
var ret = {
'width': maxWidth,
'height': h
};
}

} else {
var ratio = maxHeight / height;
var w = Math.ceil(ratio * width);

if (w > maxWidth) {
var ratio = maxWidth / width;
var h = Math.ceil(ratio * height);
var ret = {
'width': maxWidth,
'height': h
};
} else {
var ret = {
'width': w,
'height': maxHeight
};
}
}

return ret;
}

这将获取图像的宽度和高度,运行一些比率计算,并在顶部吐出一组基于 maxWidth 和 maxHeight 变量的尺寸。然后,您可以获取上述方法提供的尺寸并将其应用于图像元素,例如:

var dims = logoSize(244,127);
<Image style={[styles.logo, {width:dims.width, height:dims.height}]} source={{uri:'/path/to/image.png}} />

由于计算轮次,您可能需要将 resizeMode:'contain' 应用于样式表中的 styles.logo。

希望这可以节省一些时间。

关于react-native - 使用 resizeMode = contain 时的图像对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55653477/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com