AdapterUtil.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. "use strict"
  2. import {Dimensions, StatusBar, Platform, PixelRatio} from 'react-native'
  3. //UI设计图的宽度
  4. const designWidth = 750
  5. //UI设计图的高度
  6. const designHeight = 1334
  7. //手机屏幕的宽度
  8. export const width = Dimensions.get('window').width;
  9. //手机屏幕的高度
  10. export const height = Dimensions.get('window').height;
  11. //计算手机屏幕宽度对应设计图宽度的单位宽度
  12. export const unitWidth = width / designWidth
  13. //计算手机屏幕高度对应设计图高度的单位高度
  14. export const unitHeight = height / designHeight
  15. export const statusBarHeight = getStatusBarHeight();
  16. export const safeAreaViewHeight = isIphoneX() ? 34 : 0
  17. //标题栏的高度
  18. export const titleHeight = unitWidth * 100 + statusBarHeight;
  19. //字体缩放比例,一般情况下不用考虑。
  20. // 当应用中的字体需要根据手机设置中字体大小改变的话需要用到缩放比例
  21. export const fontscale = PixelRatio.getFontScale()
  22. /**
  23. * 判断是否为iphoneX
  24. * @returns {boolean}
  25. */
  26. export function isIphoneX() {
  27. const X_WIDTH = 375;
  28. const X_HEIGHT = 812;
  29. return Platform.OS == 'ios' && (height == X_HEIGHT && width == X_WIDTH)
  30. }
  31. //状态栏的高度
  32. export function getStatusBarHeight() {
  33. if (Platform.OS == 'android') return StatusBar.currentHeight;
  34. if (isIphoneX()) {
  35. return 44
  36. }
  37. return 20
  38. }