【发布时间】:2015-01-17 05:37:56
【问题描述】:
有什么方法可以获取设备的纵横比。比如是16:9还是4:3还是3:2?
我想为这些分辨率精确匹配资源。我面临的问题是设备没有给出确切的值,例如 iPhone 4 英寸的宽度/高度不完全是 16:9 但相对相等。有没有办法获得设备的纵横比?
提前致谢
【问题讨论】:
有什么方法可以获取设备的纵横比。比如是16:9还是4:3还是3:2?
我想为这些分辨率精确匹配资源。我面临的问题是设备没有给出确切的值,例如 iPhone 4 英寸的宽度/高度不完全是 16:9 但相对相等。有没有办法获得设备的纵横比?
提前致谢
【问题讨论】:
这是获取屏幕纵横比的伪代码。您可能需要设置 table 具有 16:9、4:3、3:2 或任何您想要的宽高比条目。
auto frameSize = Director::getInstance()->getOpenGLView()->getFrameSize();
auto aspectRatio = frameSize.width / frameSize.height;
int aspectRatioType = DEFAULT_ASPECT_RATIO_TYPE;
float closest = FLT_MAX;
for (const auto& i : table) {
auto d = fabs(i.aspectRatio - aspectRatio);
if (d < closest) {
closest = d;
aspectRatioType = i.aspectRatioType;
}
}
return aspectRatioType;
【讨论】: