size_fit.dart 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  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. }
  15. // 按照像素来设置
  16. static double setPx(double size) {
  17. return HYSizeFit.rpx * size * 2;
  18. }
  19. // 按照rxp来设置
  20. static double setRpx(double size) {
  21. return HYSizeFit.rpx * size;
  22. }
  23. }
  24. extension IntFit on int {
  25. double get px {
  26. return HYSizeFit.setPx(this.toDouble());
  27. }
  28. double get rpx {
  29. return HYSizeFit.setRpx(this.toDouble());
  30. }
  31. }
  32. extension DoubleFit on double {
  33. double get px {
  34. return HYSizeFit.setPx(this);
  35. }
  36. double get rpx {
  37. return HYSizeFit.setRpx(this);
  38. }
  39. }