1

这是支持多种 Android 设备屏幕分辨率的问题。该应用程序固定为纵向,应用程序分为三个部分,

  1. 顶栏(固定高度,在全高清 1080 分辨率下为 100 像素)
  2. 主体(动态高度)

    • 我的方法是原生构建 1080 x 1920 的应用程序,并让应用程序按比例缩小以适应目标设备屏幕。
      ** 由于主体是动态高度的,所以比例尺就是(目标宽度/1080) *我也算出了不同分辨率下主体的高度,不管有没有软home键栏,我可以计算出在 px 中使用的确切高度。

我尝试了两种方法来做规模,但他们都遇到了一些问题。

=== 方法 1 === - 缩放顶部栏并放在顶部(没有 prlblem,在这种情况下为 50 px) - 让主体自动填充“0dip”+“weight = 1”(问题描述如下)

问题:如果应用参数的顺序无关紧要,比例总是在 0dip 和权重设置后应用,以适应屏幕尺寸,所以在非 1080x1920

在这种情况下,主体实际上会进一步缩小。例如,假设设备是 540 x 960,并且主体部分应该占据 490 x 960 的区域。拥有

“0dip”+“weight = 1”,在这种情况下,比例因子为 0.5,据说是从 1080 大小缩放,实际主体实际上将显示为 245 x 480 的主要区域

为其分配的 490x960 空间。在全高清情况下,无论是 1080 x 1920(没有软 home bar)还是 1080 x 18xx(有软 home bar),因为比例因子是“1”

(无比例),自动填充在不同的屏幕高度上工作得很好。当它不是 1080 时,比例适用于

(那你可能会说,不去缩放主体部分,那么占屏就完美了,然而,那么物品显示为1080大小,所以你只能看到部分

内容,在这种情况下为 25% 左上部分)

然后这导致我使用第二种方法 === 方法 2=== - 缩放顶部栏并放在顶部(无问题) - 在布局时将主体区域设置为 1080 x 1920,然后在运行时工作输出实际的目标宽度和高度,将区域设置为缩放大小,然后进行相应缩放

计算边距以使零件处于正确位置

假设目标屏幕是 800 x 1205(1280 - 75 软主页按钮栏)比例 = 0.74074074 (800/1080) 在这种情况下,顶部栏将占用 74 像素主体应该有 1131 像素

在应用边距之前缩放后,主体仅部分显示,左侧和顶部有黑色填充,我假设它位于 1080 x 1920 的中心

空间,所以要计算出将其置于正确位置的边距,我得到了下面的公式

左移 px = (1080 - TargetWidth) / 2 => 始终在不同的屏幕分辨率下正常工作 上移 ps = (((1920 - TargetHeight) / 2) - TopBar Height ) => 不工作,从屏幕到screen 注意,TargetHeight 是包括要占用的 TopBar 在内的全高

我先做了一个屏幕像素分析,发现在这个800×1205的情况下,顶栏和主体之间的顶部黑色空间是306,这显然与顶栏74像素有关,加上顶部空间是 380 但是,考虑完整的目标高度是 1205,2 x 380,即 1965 像素,如果我在计算中添加 45 像素,我可以使公式适用于这个屏幕。

但是,当分辨率改变时,差距是不同的,额外的像素数量只是随机的......

==========================

我的问题

  1. 有没有更好的方法来实现我想要实现的目标?
  2. 有没有办法使用“0dip”+“weight = 1”+应用不会导致 2 倍收缩的比例?
  3. 那里的神秘保证金金额是多少,或者我错过了一些东西并且可以通过一些更正来解决?

谢谢,任何帮助将不胜感激。

4

0 回答 0