UNPKG

sangoes-rn-tools

Version:
70 lines (66 loc) 2.06 kB
/* * @Author: jerrychir * @Date: 2018-08-19 18:51:17 * @Last Modified by: jerrychir * @Last Modified time: 2018-08-22 11:19:28 */ const React = require("react-native"); // eslint-disable-line no-undef const { PixelRatio, Dimensions } = React; const pixelRatio = PixelRatio.get(); const deviceHeight = Dimensions.get("window").height; const deviceWidth = Dimensions.get("window").width; const fontSize = size => { if (pixelRatio >= 2 && pixelRatio < 3) { // iphone 5s and older Androids if (deviceWidth < 360) { return size * 0.95; } // iphone 5 if (deviceHeight < 667) { return size; // iphone 6-6s } else if (deviceHeight >= 667 && deviceHeight <= 735) { return size * 1.15; } // older phablets return size * 1.25; } else if (pixelRatio >= 3 && pixelRatio < 3.5) { // catch Android font scaling on small machines // where pixel ratio / font scale ratio => 3:3 if (deviceWidth <= 360) { return size; } // Catch other weird android width sizings if (deviceHeight < 667) { return size * 1.15; // catch in-between size Androids and scale font up // a tad but not too much } if (deviceHeight >= 667 && deviceHeight <= 735) { return size * 1.2; } // catch larger devices // ie iphone 6s plus / 7 plus / mi note 等等 return size * 1.27; } else if (pixelRatio >= 3.5) { // catch Android font scaling on small machines // where pixel ratio / font scale ratio => 3:3 if (deviceWidth <= 360) { return size; // Catch other smaller android height sizings } if (deviceHeight < 667) { return size * 1.2; // catch in-between size Androids and scale font up // a tad but not too much } if (deviceHeight >= 667 && deviceHeight <= 735) { return size * 1.25; } // catch larger phablet devices return size * 1.4; } // if older device ie pixelRatio !== 2 || 3 || 3.5 else return size; }; module.exports = fontSize; // eslint-disable-line no-undef