我的应用程序的resolutionPolicy设置为EXACT_FIT,因此它覆盖了屏幕的整个区域,从而产生了拉伸的UI。有些按钮的原始长宽比是圆形的,但现在它们的形状已变为椭圆形。因此,我无法弄清重新使它们变为圆形所需的缩放比例。
要使它们在每个分辨率上都是圆形的,我需要根据屏幕的宽度和高度来选择合适的缩放比例,但是我无法准确地找出它。
std::string buttonNormalIcon = "menu/back.png";
std::string buttonPressedIcon = buttonNormalIcon;
cocos2d::ui::Button* button = ui::Button::create();
std::string buttonDisabledIcon = buttonNormalIcon;
if(buttonDisabledIcon.find(".png") != std::string::npos) {
buttonDisabledIcon = buttonDisabledIcon.insert(buttonDisabledIcon.find(".png"), "_disabled");
}
// This is the part which needs to be figured out.
float scalingFactor = 1.0;
backButton->setScale(scalingFactor);
我也想根据X和Y轴进行缩放。
在最终应用中,按钮应为圆形。
答案 0 :(得分:0)
由于用例要求您根据屏幕的宽度和高度缩放按钮,因此您可以编写类似于以下内容的代码:
const Size& screenSize = Director::getInstance()->getOpenGLView()->getFrameSize();
//define a CONST_1 float variable and an appropriate scale CONST_1_SCALE
if ((screenSize.width / screenSize.height) > CONST_1) {
backButton->setScale(CONST_1_SCALE);
} else if ((screenSize.width / screenSize.height) > CONST_2) {
backButton->setScale(CONST_2_SCALE);
} else {
//write code to scale the button based on other ratios
...........
}
基于上述逻辑,您可以根据需要动态缩放按钮。