gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 14:43:06 25 4
gpt4 key购买 nike

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

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 变量吐出一组尺寸。然后,您可以采用上述方法为您提供的尺寸并将其应用于 Image 元素,例如:

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 = 包含时的图像对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36028906/

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