size_fit.dart 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import 'package:flutter/material.dart';
  2. class HYSizeFit {
  3. static MediaQueryData _mediaQueryData;
  4. static double screenWidth;
  5. static double screenHeight;
  6. static double rpx;
  7. static double px;
  8. static void initialize(BuildContext context, {double standardWidth = 750}) {
  9. _mediaQueryData = MediaQuery.of(context);
  10. screenWidth = _mediaQueryData.size.width;
  11. screenHeight = _mediaQueryData.size.height;
  12. rpx = screenWidth / standardWidth;
  13. px = screenWidth / standardWidth * 2;
  14. // print('device size: $screenWidth * $screenHeight');
  15. }
  16. // 按照像素来设置
  17. static double setPx(double size) {
  18. return HYSizeFit.rpx * size * 2;
  19. }
  20. // 按照rxp来设置
  21. static double setRpx(double size) {
  22. return HYSizeFit.rpx * size;
  23. }
  24. }
  25. extension IntFit on int {
  26. double get px {
  27. return HYSizeFit.setPx(this.toDouble());
  28. }
  29. double get rpx {
  30. return HYSizeFit.setRpx(this.toDouble());
  31. }
  32. }
  33. extension DoubleFit on double {
  34. double get px {
  35. return HYSizeFit.setPx(this);
  36. }
  37. double get rpx {
  38. return HYSizeFit.setRpx(this);
  39. }
  40. }