//get Screen Resolution
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
screenSize.getHeight();
screenSize.getWidth();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;
//assign video size to screen size
media.setFitWidth(screenWidth);
media.setFitHeight(screenHeight);
if (screenWidth <= 1700) {
media.setTranslateY(50);
media.setScaleX(1.1);
media.setScaleY(1.1);
} if (screenWidth <= 1600 && screenHeight <= 900) {
media.setScaleX(1.0);
media.setScaleY(1.0);
media.setTranslateY(-3);
} if (screenWidth == 1600 && screenHeight == 1024) {
media.setScaleX(1.1);
media.setScaleY(1.1);
media.setTranslateY(60);
} if (screenWidth <= 1370) {
media.setTranslateY(0);
btnPalette.setPrefWidth(40);
btnFont.setPrefWidth(40);
btnQuestCards.setPrefWidth(40);
btnNonQuestCards.setPrefWidth(40);
} if (screenWidth <= 1300) {
media.setScaleX(1.4);
media.setScaleY(1.4);
media.setTranslateY(150);
} if (screenWidth == 1280 && screenHeight == 800 || screenWidth == 1280 && screenHeight == 768) {
media.setScaleX(1.1);
media.setScaleY(1.1);
media.setTranslateY(50);
} if (screenWidth == 1280 && screenHeight == 720 || screenWidth == 1176 && screenHeight == 664) {
media.setScaleX(1.0);
media.setScaleY(1.0);
media.setTranslateY(0);
} if (screenWidth == 1152 && screenHeight == 864) {
media.setScaleX(1.4);
media.setScaleY(1.4);
} if (screenWidth == 1024 && screenHeight == 768) {
media.setTranslateY(90.0);
} if (screenWidth == 800 && screenHeight == 600) {
media.setScaleX(1.3);
media.setScaleY(1.3);
media.setTranslateY(80.0);
}
if (screenWidth <= 1700) {
media.setTranslateY(50);
media.setScaleX(1.1);
media.setScaleY(1.1);
}
if (screenWidth <= 1600 && screenHeight <= 900) {
media.setScaleX(1.0);
media.setScaleY(1.0);
media.setTranslateY(-3);
}
reDraw(screenWidth <= 1700, media, 1.1, 1.1, 50.0);
reDraw(screenWidth <= 1600 && screenHeight <= 900, media, 1.0, 1.0, -3.0);
// и метод под всё это(его можно поперегружать и сделать ещё более удобным)
private static void reDraw(Boolean condition, ImageView view, Double scaleX, Double scaleY, Double translateY) {
if (condition) {
if (scaleX != null)
view.setScaleX(scaleX);
if (scaleY != null)
view.setScaleY(scaleY);
if (translateY != null)
view.setTranslateY(translateY);
}
}
boolean isLargeSize = screenWidth <= 1700;
boolean isMediumSize = screenWidth <= 1600 && screenHeight <= 900;
reDraw(isLargeSize, media, 1.1, 1.1, 50.0);
reDraw(isMediumSize, media, 1.0, 1.0, -3.0);
EnumScreenSize
, в котором написать некую логику, отдающая нужный инстенс исходя из Dimension
. Первые 5 строчек уже сократятся в одну. Это же позволит вместо десятков >= <= && ||
делать size == EnumScreenSize.FULL_HD
. Если scale величины относятся ко всем экранам в целом, и их можно вынести в энам - так тоже стоит сделать. Вместо if'ов можно использовать switch, и хоть он громаздкий, но выглядеть будет проще. Если setScale() и другие методы отдают this, то можно chain'ить их.