cargo66/lib/configs/app_dimensions.dart

76 lines
1.6 KiB
Dart
Raw Normal View History

2024-07-23 04:27:35 +00:00
import 'package:flutter/material.dart';
import 'dart:ui' as ui;
import 'ui.dart';
class AppDimensions {
static double? maxContainerWidth;
static double? miniContainerWidth;
static bool? isLandscape;
static double? padding;
static double ratio = 0;
static Size? size;
static init() {
ratio = UI.width! / UI.height!;
double pixelDensity = UI.mediaQuery().devicePixelRatio;
ratio = (ratio) + ((pixelDensity + ratio) / 2);
if (UI.width! <= 380 && pixelDensity >= 3) {
ratio *= 0.85;
}
_initLargeScreens();
_initSmallScreensHighDensity();
padding = ratio * 3;
}
static _initLargeScreens() {
const safe = 2.4;
ratio *= 1.5;
if (ratio > safe) {
ratio = safe;
}
}
static _initSmallScreensHighDensity() {
if (!UI.sm! && ratio > 2.0) {
ratio = 2.0;
}
if (!UI.xs! && ratio > 1.6) {
ratio = 1.6;
}
if (!UI.xxs! && ratio > 1.4) {
ratio = 1.4;
}
}
static String inString() {
final x = UI.width! / UI.height!;
2024-08-02 10:44:37 +00:00
final ps = WidgetsBinding.instance.platformDispatcher.views.first.physicalSize; //ui.window.physicalSize;
2024-07-23 04:27:35 +00:00
return '''
Width: ${UI.width} | ${ps.width}
Height: ${UI.height} | ${ps.height}
app_ratio: $ratio
ratio: $x
pixels: ${UI.mediaQuery().devicePixelRatio}
''';
}
static double space([double multiplier = 1.0]) {
return AppDimensions.padding! * 3 * multiplier;
}
static double normalize(double unit) {
return (AppDimensions.ratio * unit * 0.77) + unit;
}
static double font(double unit) {
return (AppDimensions.ratio * unit * 0.125) + unit * 1.90;
}
}