Это очень поздний ответ, но я решил это гораздо более простым способом, и я знаю, что другие оценят его.
Я предполагаю, что вы уже знаете разрешение экрана, поскольку знаете соотношение сторон (десятичный эквивалент). Вы можете найти соотношение сторон (целое число: целое), решив наибольший общий коэффициент между шириной и высотой экрана.
public int greatestCommonFactor(int width, int height) {
return (height == 0) ? width : greatestCommonFactor(height, width % height);
}
Это вернет наибольший общий коэффициент между шириной и высотой экрана. Чтобы найти фактическое соотношение сторон, вы просто делите ширину и высоту экрана на наибольший общий коэффициент. Итак ...
int screenWidth = 1920;
int screenHeight = 1080;
int factor = greatestCommonFactor(screenWidth, screenHeight);
int widthRatio = screenWidth / factor;
int heightRatio = screenHeight / factor;
System.out.println("Resolution: " + screenWidth + "x" + screenHeight;
System.out.println("Aspect Ratio: " + widthRatio + ":" + heightRatio;
System.out.println("Decimal Equivalent: " + widthRatio / heightRatio;
Это выводит:
Resolution: 1920x1080
Aspect Ratio: 16:9
Decimal Equivalent: 1.7777779
Надеюсь, это поможет.
Примечание: это не будет работать для некоторых разрешений. Комментарии содержат больше информации.