React Native 如何获取不同屏幕的像素密度
React Native 获取不同屏幕的像素密度
使用React Native开发 User Interface,初步了解之后,产生一个疑问,使用flexbox开发页面,width及height属性等输入大小或者说尺寸的地方,不能输入单位,如 height:80,通过JSX传化之后到都是按 px 像素单位处理的,因此在这个不同分配率的手机和不同密度的手机显示的效果不同,如何解决这个问题?
你猜我找到了什么?
React Native 提供的像素比获取神器PixelRatio
PixelRatio类提供给我们几个重用的方法,整理如下:
1、返回设备的像素密度
static get()
等同于在Android开发中通过代码
context.getResources().getDisplayMetrics().density;
获取到的手机设备密度。
返回结果如下图:(这是从官网上盗的图,^_^)
举个栗子
borderwidth : 1/PixelRatio.get()
返回的就是当前设备的最小线宽。
2、 返回字体大小的缩放因子
static getFontScale()
获取到的比率是用来计算文字的绝对大小,所以对计算的精度要求很高的元素,应该使用这个比率。
例如用户在通过 Setting > Display > Font Size 设置设备的字体显示大小,这个值就会改变,默认的情况下返回设备的像素比。
3、 单位 dp 转换成 px
static getPixelSizeForLayoutSize(layoutSize:number)
在UI开发的过程中最长使用到的方法。
结论
这个类的使用,以后再开发的过程中还会持续更新。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
Android React-Native通信数据模型分析
无论是计算机领域还是日常生活中,我们所言的通信,其核心都是数据信息的交换,而数据模型的优劣对通信效率有着决定性的作用. 在React-Native项目中,Javascript语言与Native两种语言(Java或OC等)间存在着大量的数据交换,也就是所谓的通信.众所周知,移动APP对性能的要求无比苛刻,如果通信数据模型设计地不合理,很可能引起多线程下的数据安全问题,以及应用性能问题,比如内存泄漏,UI绘制缓慢等. 前面几篇博客我们详细分析过React-Native的通信机制,主要有两个方向: J
-
ReactNative (API)AsyncStorage存储详解及实例
AsyncStorage存储类似Android中的sharedpreference存储或者IOS中的NSDefaultUser不过ReactNative中的AsyncStorage只能存储字符串类型 常用方法: getItem(key:string,callback?:?(error:?Error,result:?string)=>void) 静态方法,该通过key字段来进行查询存储的数据,把该结果值作为参数传入第二个callback方法.如果发生错误,会把Error对象传入callback方法
-
IOS React Native FlexBox详解及实例
IOS React Native FlexBox详解及资料整理, # 前言 学习本系列内容需要具备一定 HTML 开发基础,没有基础的朋友可以先转至 HTML 学习 本人接触 React Native 时间并不是特别长,所以对其中的内容和性质了解可能会有所偏差,在学习中如果有错会及时修改内容,也欢迎万能的朋友们批评指出,谢谢 文章第一版出自简书,如果出现图片或页面显示问题,烦请转至 简书 查看 也希望喜欢的朋友可以点赞,谢谢 什么是 FlexBox 布局 在 html 中,界面的搭建都是采用 C
-
React-Native Android 与 IOS App使用一份代码实现方法
React-Native Android 与 IOS 共用代码 React-Native 开发的App, 所有组件iOS & Android 共用, 共享一份代码 包括一些自定义的组件, 如NavigationBar, TabBar, SegmentedControl, 使用字体图标, 具有一定的参考意义 主要专注于布局, 共享组件/代码, 以及一些React自带的组件, 如: ScrollView, TouchableOpacity, View, Text, ListView, Image,
-
React Native搭建iOS开发环境
一.写在前面 1. 什么是React-Native? React-Native是:Facebook 在2015年初React.js技术研讨大会上公布的一个开源项目.支持用开源的JavaScript库React.js来开发iOS和Android原生App.初期仅支持iOS平台,同年9月份,该开源项目同时支持Android平台. React Native的原理是:在JavaScript中用React抽象操作系统原生的UI组件,代替DOM元素来渲染,比如以<View>取代<div>,以&
-
Windows下React Native的Android环境部署及布局示例
搭建基础环境 JDK(必须,不解释) SDK(建议使用Android Studio,集成SDK以及模拟器) genymotion(如果是使用真机或者Android Studio自带的模拟器,可以选择不装) NVM(node版本控制器,需要node4.0以上版本) 以上配置不是必须,可自行选择适合自己的环境,部分安装过程可能会涉及到翻墙,需要配置代理 配置踩坑记录 genymotion 这里选择genymotion模拟器来讲解,也会提一下Android Studio自带的模拟器的一些注意点,使用真
-
ReactNative页面跳转实例代码
效果图如下所示: 进入工作目录,运行 react-native init NavigatorProject 创建项目NavigatorProject import React, { Component } from 'react'; import { AppRegistry, StyleSheet, Text, View, TouchableHighlight, Image, Navigator } from 'react-native'; class navigatorProject exte
-
PHP获取不了React Native Fecth参数的解决办法
话不多说,我们直接来看示例 React Native 使用 fetch 进行网络请求,推荐Promise的形式进行数据处理. 官方的 Demo 如下: fetch('https://mywebsite.com/endpoint/', { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ username: 'y
-
React Native实现简单的登录功能(推荐)
React Native 简介: React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用.在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染等. React Native 使你能够使用基于 JavaScript 和 React 一致的开发体验在本地平台上构建世界一流的应用程序体验.React Native 把重点放在所有开发人员关心的平台的开发效率上
-
React-Native TextInput组件详解及实例代码
同时适配Android和IOS 代码注释比较详细 /** * Sample React Native App * https://github.com/facebook/react-native * @flow */ import React, {Component} from 'react'; import { AppRegistry, StyleSheet, Text, View, TextInput, Platform, TouchableOpacity, } from 'react-na
-
Android原生嵌入React Native详解
1.首先集成的项目目录 我使用的是直接按照react-native init Project 的格式来导入的,也就是说,我的Android项目目录是跟node_modules是在一个目录下的. 我们init完项目之后,项目初始化完成了,这时候我们可以用命令react-native run-android直接运行项目,至于怎么调试,之前已经说过. 说一下我们怎么开发和运行分开吧,我们开发一般会选择webstrom,开发后我们会Android和ios的编译分开. 启动npm 下面说一下android
-
ReactNative Alert详解及实例代码
Alert顾名思义一就是一个警告框,一般使用情况比如:退出登录,清楚缓存,提示修改密码等等...ReactNative中的Alert只有一个静态方法alert()其中有四个参数:标题,信息,按钮和按钮类型 在Android按钮至多有三个 下面是使用情况: 实例代码: /** * Created by Administrator on 2016/9/12. */ import React, {Component} from 'react'; import { StyleSheet, View, T
-
深入浅析react native es6语法
react native是直接使用es6来编写代码,许多新语法能提高我们的工作效率 解构赋值 var { StyleSheet,Text,View } = React; 这句代码是ES6 中新增的解构(Destructuring)赋值语句.准许你获取对象的多个属性并且使用一条语句将它们赋给多个变量. 上面的代码等价于: var StyleSheet = React.StyleSheet; var Text = React.Text; var View = React.View 再看几个例子,以前
-
ReactNative-JS 调用原生方法实例代码
第一步首先创建ReactNative 模块类继承ReactContextBaseJavaModule package com.mixture; import android.content.Context; import android.widget.Toast; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule
随机推荐
- 基于Python os模块常用命令介绍
- mdf文件和ldf文件导入到sql server 2005实现语句
- 比较常用证件正则表达式验证大全
- php socket方式提交的post详解
- CodeIgniter多语言实现方法详解
- Android程序开发之防止密码输入错误 密码明文显示功能
- 图片自动缩小的js代码,用以防止图片撑破页面
- jquery 操作DOM案例代码分享
- 基于jquery的拖动布局插件
- 整理Java的MyBatis框架中一些重要的功能及基本使用示例
- Android中Split()字符串分割特殊用法案例详解
- C#实现航班查询及预订功能
- 详解如何模拟实现node中的Events模块(通俗易懂版)
- Java使用@Validated注解进行参数验证的方法
- JavaScript 反射和属性赋值实例解析
- python单例模式获取IP代理的方法详解
- 小程序实现列表多个批量倒计时
- 浅谈matplotlib.pyplot与axes的关系
- Java内部类的实现原理与可能的内存泄漏说明
- MySQL IFNULL判空问题解决方案