有没有办法在Ionic/Angular/Cordova堆栈中找到以dp(而不是px)表示的屏幕大小
Is there any way to find screen size in dp (not px) in Ionic/Angular/Cordova stack?
我知道如何使用文档、窗口和其他对象在Javascript中找到内部、外部、浏览器等像素的维度。。
问题是,返回的宽度和高度以px为单位,而不是以dp为单位。
比方说,如果屏幕足够小,以至于有些东西太大而放不下,我想隐藏一些元素。我想以这样一种方式,我按照特定的顺序删除元素(有些更有用,另一些用于附加信息),直到所有东西都能水平和垂直地显示在屏幕上(没有滚动)。
所以我会得到屏幕大小和ng,如果从窗口中删除对象,直到剩余的对象大小(像素加在一起)小于window.innerSize。在像素就是像素的桌面上效果很好。
但是,问题来了。在手机上,实际屏幕像素和显示像素通常是有比例的。例如,假设一个块在css中是300px高(高度:300px!重要),但在实际设备上是700像素高(使用开发者模式点击底部测量)。我意识到有些是由于应用程序外屏幕上的额外像素,比如顶部的staus栏,但其余的是屏幕的dp-px比。
若并没有找到窗口的dp尺寸的原始问题的解决方案,你们将如何处理这个问题?
找到了它,当你使用Cordova时,你有window.devicePixelRatio可供您使用。
它发挥得很好。使用window.innerHeight可以获得窗口内所有东西的实际高度(也适用于覆盖应用程序的键盘!)。对于每个元素,其在屏幕上的高度是his_css_height*window.devicePixelRatio。
翻译成我想要的。
很抱歉在这里回答我自己的问题,但我花了将近3个小时寻找答案,我决定在这里发帖,然后继续搜索。刚刚意识到这一点,希望它能帮助其他人:)
你可以试试这个:
Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics ();
display.getMetrics(outMetrics);
float density = getResources().getDisplayMetrics().density;
float dpHeight = outMetrics.heightPixels / density;
float dpWidth = outMetrics.widthPixels / density;
- React中的数据集表示
- 如果宽度是百分比,如何设置以px为单位的图像高度
- 任何将(SSH)终端嵌入到一些HTML5表示系统中的想法(例如,show.js)
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- 如何将Date字段设置为等于另一个Date+Int值,该值表示月份值
- regex表示逗号,后跟空格或仅逗号
- 我将如何将其更改为循环和数组表示法
- 如何使用Undercore和Backbone在HTML中表示模型属性
- 将JSON对象的表示形式更改为显式键/值格式
- 如何在JS中获得CryptoJS.HmacSHA256的摘要表示
- 在javascript中使用方括号表示法的嵌套对象
- 如何在JavaScript中将数字表示为十六进制
- 如何从二进制int中获取百分比,每个位表示x%
- Regex表示10位数字,其中没有't允许所有零、所有单个no和序列号
- 如何避免“;使用数组文字表示法“;以下javascript代码中的jslint错误
- Regex表示8位电话号码(新加坡号码长度)
- 有没有办法在里面看到一个数字'的64位浮点IEEE754表示
- 如何在ember数据模型中表示数组
- 在Javascript中,如何在JSON对象中将1.00表示为数字
- 有没有办法在Ionic/Angular/Cordova堆栈中找到以dp(而不是px)表示的屏幕大小