- Creator 版本: 2.4.5
想在一个固定宽高的节点里面动态加载图片,然后图片可以去适应节点的高度进行缩放,例如节点的宽高为(500,500),图片是(400,700),然后就可以按比例把图片的高度适应到500。
我尝试用两个节点,父节点设定尺寸,然后子节点设定widget上下为0,这样高度压缩了,但是宽度仍然是图片原始的宽度。
请教大佬们,有没有比写一个方法去换算然后设置更简便的方法。
想在一个固定宽高的节点里面动态加载图片,然后图片可以去适应节点的高度进行缩放,例如节点的宽高为(500,500),图片是(400,700),然后就可以按比例把图片的高度适应到500。
我尝试用两个节点,父节点设定尺寸,然后子节点设定widget上下为0,这样高度压缩了,但是宽度仍然是图片原始的宽度。
请教大佬们,有没有比写一个方法去换算然后设置更简便的方法。
不写公式无解。
唉,好吧,那就写个换算方法了,多谢大佬
对于尺寸不确定的图片而言,只能写代码,查找宽高哪个长,按照长边等比缩放到500
谢谢,老实写代码去
审题要仔细

const { ccclass, property } = cc._decorator;
/**
图片限制尺寸
@author chenkai 2021.6.24
*/
@ccclass
export default class ImgFixedSize extends cc.Component {
public get fixedSize(){
return this._fixedSize;
}
@property({type:cc.Integer, tooltip:“固定尺寸”})
public set fixedSize(value){
this._fixedSize = value;
this.onSizeChanged();
}
/**固定尺寸 */
private _fixedSize:number = 0;
onLoad() {
this.node.on(cc.Node.EventType.SIZE_CHANGED, this.onSizeChanged, this);
this.onSizeChanged();
}
/**当尺寸变化时,重置node节点大小 */
onSizeChanged() {
var width = this.node.width;
var height = this.node.height;
var max = Math.max(width, height);
this.node.scale = this.fixedSize / max;
}
}
谢谢大佬帮忙
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。