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设备? 答案通常说明不同的像素分辨率,以放入每个密度桶中。 例如: 来源:Android:支持所有设备的背景图像大小(像素) 像这样的列表实际上正是我想要的。唯一的问题是这对我来说没有意义。 按密度对图像进行分组似乎适合于在不同密度上显示相同大小的
问题内容: 我如何获取元素(例如按钮)的实际屏幕位置?如果我使用getBounds,我将获得相对于父容器而不是屏幕的位置。 问题答案: 你试过了吗?
有没有一种方法可以使用Java/Swing为不同的显示密度选择不同的图像,这样我的应用程序在更高密度的显示器上看起来就不会模糊?或者这不是那么重要或可能吗?我知道Chrome目前没有考虑到DPI,但Internet Explorer和其他应用程序都考虑到了。 谢谢您的帮助,我是一个长期的Java开发人员,我只是以前从未考虑过DPI,并想知道我应该如何去做:)
我正在为我的应用程序准备抽屉。经过一些研究,我知道需要考虑的3个参数是屏幕大小、密度和分辨率。 1.)因为对于特定的屏幕尺寸,如果密度变化,那么相应的分辨率将自动变化。此外,对于特定的密度,如果屏幕尺寸变化,那么相应的分辨率将自动变化。 按照这一逻辑,我不再考虑分辨率,计划只关注屏幕大小和密度。我的方法正确吗? 2.)现在根据文档,如果您正在为mdpi准备100x100映像,那么您应该分别为ldp
问题内容: 我正在开发一个需要屏幕DPI的应用程序。我检查了几个论坛,并获得了一个代码段,内容如下: 但是无论我的屏幕分辨率值是多少,该值都保持不变,为96。代码有什么问题? 对于同一件事,我得到了另一个代码,如下所示: 但是再一次,无论我的屏幕分辨率如何,返回的值都是相同的96。怎么了?我的代码是错误的还是我以错误的方式解释了它? 问题答案: 问题是没有人知道操作系统的确切物理尺寸,甚至连操作系
我试图用selenium和Firefox捕获http://www.flipkart.com url的屏幕。 它拍摄整个页面的屏幕快照,但它显示的内页图像对许多其他图像不可用。我无法纠正它。帮帮我.