import { PixelRatio, Dimensions } from 'react-native'; export let screenW = Dimensions.get('window').width; export let screenH = Dimensions.get('window').height; const fontScale = PixelRatio.getFontScale(); export let pixelRatio = PixelRatio.get(); //像素密度 export const DEFAULT_DENSITY = 2; //px转换成dp //以iphone6为基准,如果以其他尺寸为基准的话,请修改下面的defaultWidth和defaultHeight为对应尺寸即可. 以下为1倍图时 const defaultWidth = 375; const defaultHeight = 667; const w2 = defaultWidth / DEFAULT_DENSITY; //px转换成dp const h2 = defaultHeight / DEFAULT_DENSITY; //缩放比例 const _scaleWidth = screenW / defaultWidth; const _scaleHeight = screenH / defaultHeight; // iPhoneX const X_WIDTH = 375; const X_HEIGHT = 812; /** * 屏幕适配,缩放size , 默认根据宽度适配,纵向也可以使用此方法 * 横向的尺寸直接使用此方法 * 如:width ,paddingHorizontal ,paddingLeft ,paddingRight ,marginHorizontal ,marginLeft ,marginRight * @param size 设计图的尺寸 * @returns {number} */ function scaleSize(size: Number) { return size * _scaleWidth; } /** * 屏幕适配 , 纵向的尺寸使用此方法应该会更趋近于设计稿 * 如:height ,paddingVertical ,paddingTop ,paddingBottom ,marginVertical ,marginTop ,marginBottom * @param size 设计图的尺寸 * @returns {number} */ function scaleHeight(size: Number) { return size * _scaleHeight; } export default { scaleSize, scaleHeight, }