} from 'react-native';
const { width, height } = Dimensions.get('window');
const [shortDimension, longDimension] = width < height ? [width, height] : [height, width];
//Default guideline sizes are based on standard ~5" screen mobile device
const guidelineBaseWidth = 350;
const guidelineBaseHeight = 680;
export const scale = size => shortDimension / guidelineBaseWidth * size;
и потом в стилях указывать размер в scale(), ну мне это помогло.
Я только глянул в либу чтоб убедиться что это код оттуда. А теперь вопрос. Какое отношение этот scale имеет к ppi? )))
вот я тоже хочу узнать. я протестировал на эмуляторе, при одинаковых значениях ширины и высоты - менял ppi от 300 до 700 даже, результат - шрифт везде одинаковый. не понимаю как это работает. ширину и высоту менял тоже, ставил разные пресеты. например вот эта либа одна из популярных https://www.npmjs.com/package/react-native-responsive-dimensions она заявляет что делает размер шрифта адаптивным. но при этом при увеличении ppi шрифт тоже увеличивается, а так же не должно быть.
От ppi зависит коэффициент, который PixelRatio возвращает, но он нелинейный и приближенный. Это те самые 1x, 2x, 3x, что Image использует. А вот реальный ppi получить довольно сложно.
есть предположения почему тот код и та либа что я показал работает как надо и показывает примерно одинаковые размеры шрифта и иконок при разных ppi? или это магия эмулятора? протестить на всех физических девайсах нет возможности.
Обсуждают сегодня