react-native中 屏幕以及字體 大小適配



import {

Platform,
Dimensions,
PixelRatio
} from 'react-native';
 
// iPhoneX
const X_WIDTH = 375;
const X_HEIGHT = 812;

 

// screen 屏幕寬度
export const SCREEN_WIDTH = Dimensions.get('window').width;
// screen 屏幕高度
export const SCREEN_HEIGHT = Dimensions.get('window').height;

/*

是否iPhone X
*/
export function isIphoneX() {
return (
Platform.OS === 'ios' &&
((SCREEN_HEIGHT === X_HEIGHT && SCREEN_WIDTH === X_WIDTH) ||
(SCREEN_HEIGHT === X_WIDTH && SCREEN_WIDTH === X_HEIGHT))
)
}

 

// 字體大小縮放比例
var fontScale = PixelRatio.getFontScale();
// 設備像素密度
export var pixelRatio = PixelRatio.get();

 

/*
設計圖標准 750 * 1334
*/
const w2 = 750 / 2;
const h2 = 1334 / 2;

 

/**
* 設置text為sp
* @param size sp
* @returns size
*/
export const DEFAULT_DENSITY = 2;

 

export function setSpText(size) {

 

var scaleWidth = SCREEN_WIDTH / w2;
var scaleHeight = SCREEN_HEIGHT / h2;
var scale = Math.min(scaleWidth, scaleHeight);
size = Math.round((size * scale + 0.5) * pixelRatio / fontScale);
return size / PixelRatio.get();
}
/**
* 屏幕適配,縮放size
* @param size
* @returns size
* @constructor
*/
export function scaleSize(size) {
var scaleWidth = SCREEN_WIDTH / w2;
var scaleHeight = SCREEN_HEIGHT / h2;
var scale = Math.min(scaleWidth, scaleHeight);
size = Math.round((size * scale + 0.5));
return size;
}

 

/*

 

導出URL 可以用
export const baseURLVersion = 'www.baidu.com';
 
*/










免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM