问题标签 [screen-density]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
44 浏览

ios - 在 iOS 中处理屏幕密度和尺寸

Android 提供 DP/DIP 来处理不同的屏幕密度。

iOS中是否有类似的东西,还是以某种方式处理不同?

例如,如果我将 UILabel 高度设置为 20,它会在 iPhone4 和 iPhone7 中按比例缩放吗?

谢谢。

0 投票
1 回答
111 浏览

javascript - 如何消除 JavaScript 中的 CSS Pixel Ratio,以便在手机上创建高清游戏?

我一直在用纯 JavaScript/CSS/HTML 开发游戏,我遇到了问题,我的 1920x1080 手机将我的游戏显示为 586x330,像素显示比为 3。我想知道的是如何让我的游戏在高清屏幕上运行,因为我不想在可能是高分辨率的情况下玩低分辨率游戏。

当我在网络浏览器(台式机或移动设备)上运行游戏时,像素密度为 1,所以一切都很好,当我使用 PhoneGap 作为 android 应用程序运行它时会出现问题。

任何帮助将不胜感激,我被困在这里。

谢谢,

0 投票
0 回答
1632 浏览

android - Android XXHDPI 密度

我面临下一个问题:

我正在三星 S4 模拟器 (XXHDPI) 中测试我的应用程序。当我用 getResources().getDisplayMetrics().density 询问密度时,它返回 2.625 而不是 3。这是一个问题,因为我活动中的所有视图都较小,因为它将我的所有视图乘以 2,625 而不是 3。

所以我有两个问题:

1)为什么会这样?2)如何解决这个问题,并返回 3。

谢谢

0 投票
1 回答
12876 浏览

android - Android xxhdpi、420 ​​dpi 和 480 dpi

我面临下一个问题:

我有一个 values-xxhdpi 和他们的 dimensions.xml。具有 480 dpi 的设备非常适合此文件夹。

问题在于,例如三星 Galaxy S4 或 S5 会从该文件夹中捕获值,并且在屏幕上看起来不太好,因为它们具有 420 dpi。所以我需要为这种类型或设备创建一个值-SOMETHING。

我尝试添加 values-w410dp 并且工作正常,但是如果我添加此文件夹,则具有 480 dpi 的设备现在会从该文件夹中捕获 de 值,而不是来自 values-xxhdpi 的值。

请需要建议

谢谢

0 投票
3 回答
4431 浏览

android - Android 420 dpi and 560dpi

Is there a way to create a drawable folder and a values folder to 420 dpi and 560 dpi devices? One for the 420 dpi and one for 560 dpi.

420dpi: Samsung Galaxy S5, S4, LG G5, ...

560dpi: Nexus 6, Samsung S6, S7, ...

Because in those type of devices my app not looks well. Images in drawable-xxhdpi are smaller in a device with 420 dpi. Because multiplies the width of the image x 2,625 (density). I need bigger images or multiply images x 3.

0 投票
1 回答
953 浏览

android - Android中不同尺寸的图像

我正在尝试使用 GridView 在我的应用程序中创建主要活动。我需要一个 3x3 的网格。每个单元格都包含 ImageView(不同操作的图标)。所有图像必须具有相同的大小。我的问题是:我必须使用什么尺寸的图像?我观看了教程并找到了一张表格,其中包含不同分辨率和密度的尺寸。但我不明白。例如,我的 mdpi 密度和屏幕尺寸为 480*800。这是否意味着我应该在这个屏幕上使用 160*266 的图标?其他密度和屏幕尺寸应该是什么尺寸?我该如何计算它们?

0 投票
1 回答
2309 浏览

android - 如何使用 android studio 创建 avd 来预览真实设备?

我创建了小米红米 3s (294dpi) 的 avd,其规格为:

在此处输入图像描述

在此处输入图像描述

Android 中的广义密度为:

  • Ldpi(低)~ 120 dpi -> dp = px * 0.74
  • Mdpi(平均)~ 160 dpi -> dp = px * 1
  • Hdpi(高)~ 240 dpi -> dp = px * 1.5
  • Xhdpi (extraalta) ~ 320 dpi -> dp = px * 2
  • Xxhdpi (extra extraalta) ~ 480 dpi -> dp = px * 3
  • Xxxhdpi (extra extraalta) ~ 640 dpi -> dp = px * 4

当我创建带有设备规格的avd时,分配的密度是xhdpi(x2),但实际设备密度因子小于x2,与大多数设备一样,因此预览结果与设备屏幕的实际外观不匹配。比如Nexus 5x也是一样,资源密度是xxhdpi(x3),但实际密度是2.63

在 Android Studio 中,Nexus 5x 或 Pixel XL 等模拟设备分别指定了 420dpi 和 560dpi 的特殊密度,其中密度因子约为 2.6 (xxhdpi) 和 3.5 (xxxhdpi)。

要确定我使用的小米红米 3S 的宽度 dp 及其密度系数:

dpi/160 = 密度像素值 294/160 = 1,8375

我用https://stackoverflow.com/a/5104104/4114846计算了真实密度

结果是294dpi的密度,实际密度因子是1.83,但是系统分配的资源文件夹是xhdpi(x2),预览对应的是广义密度。

如何通过指定设备的密度或其密度因子来创建 avd 和预览,使其看起来像实际设备?

如果你不能用 android studio 指定,我们有什么替代方案?

0 投票
1 回答
32 浏览

android - 当设备具有不同的密度时,我可以保持相同图像的相同分辨率吗?

我昨天问了一个问题。

为什么程序读取图像文件后分辨率会变小?

非常感谢帮助我的人。

他们让我知道,如果我使用具有不同密度的设备,同一图像的分辨率可能会改变。

例如:

我有一个分辨率为 1440x2560 的图像和一个密度为 3.5 的设备。

图像读入程序后,转数变为 1260x2240。

但是我不希望改变图像的分辨率,因为屏幕上的图像比例会有所不同。

我试图找到一个解决方案,但我失败了。

有没有一种方便的方法可以在不同密度的不同设备上固定相同图像的相同分辨率?

0 投票
2 回答
1626 浏览

android - 手机和平板电脑的 ImageView 大小

我正在为我的应用程序制作类似仪表板的东西。一切都很好,除了不同设备屏幕英寸的 ImageView 大小的情况。

在 7 英寸及以下的手机和设备上看起来不错

在此处输入图像描述

但在超过 7 英寸的设备上,它看起来很糟糕

在此处输入图像描述

在所有情况下,我都使用相同大小的 ImageView - 50dp,并且生成了 MDPI、HDPI、XHDPI、XXHDPI 图像

如果我将使用尺寸,我会得到模糊的图像,因为 MDPI、HDPI、XHDPI、XXHDPI 图像只会为 50dp 生成,而不是为 100dp

但似乎 7" 及以上英寸的设备需要更多的图像尺寸,例如 100dp。

我无法搜索解决方案。是否可以在不创建额外代码的情况下使图像在 7"+ 平板电脑上看起来更大?

0 投票
1 回答
263 浏览

android - 使用 x/y 坐标设置移动粒子的边界

我在画布的中心绘制了两张位图:一张只是背景,它是顶视图中的水平仪,不会移动。第二个是看起来像“气泡”的位图。当用户倾斜手机时,传感器会读取倾斜度,气泡会根据传感器值沿 x 轴移动。但是,我需要确保气泡不会移动太远,例如超出背景位图。所以我尝试了气泡可以移动到哪个 x 坐标,然后我必须使用反复试验设置 xPos = xPos -1 这在我的设备上运行良好。

澄清一下:在我的手机上,气泡可能会从屏幕中间移动到坐标 x = 50。这就是位图位于背景水平仪最左侧的点。在更大的手机上,x = 50 的位置太靠左了,因此看起来像是气泡从水位中移动了出来。

现在我尝试了以下方法:我计算了气泡可以移动的面积百分比。假设这是位图整个宽度的 70%。所以我尝试计算两个 x 边界值:

leftBoundary = XmiddlePoint - (backgroundBitmap.getWidth() * 0.35); rightBoundary = XmiddlePoint + (backgroundBitmap.getWidth() * 0.35);

...在使用不同的屏幕尺寸进行测试时不起作用:(

是否可以使用绝对坐标来补偿不同的屏幕尺寸和密度,还是我必须重新考虑我的想法?

如果您需要任何我忘记的信息,请告诉我。如果这个问题已经得到解答,我将不胜感激:)提前致谢!

编辑:我像这样加载我的位图:

并像这样画出来:

backgroundBitmap.getWidth() 和 getHeight() 打印出正确的尺寸。如上所述的计算将返回以下边界:

但是,当我使用试错法时,正确的 x 坐标似乎在 700 左右。