创建适合所有屏幕的多设备应用

时间:2019-03-03 15:14:45

标签: android delphi firemonkey

我正在使用Delphi 10.2并创建一个多设备应用程序-都是第一次。

但是,我在使UI适合所有界面时遇到问题。让我们以Android设备为例。

我拥有Samsung Galaxy J2 Prime设备。 Delphi 10.2具有一些预设设备,包括4“和5”屏幕。但是,似乎我的设备的屏幕尺寸不适合任何预设设备,介于4“和5”之间。

因此,我总是在屏幕外或开箱即用后遇到UI组件问题。这是一个例子。

在我的IDE上,这就是我所看到的(图片是align = left;文本是align = right):

Delphi IDE

但是这是我在设备上看到的内容:

Device

我有很多这样的情况。我尝试使用对齐,边距,填充,锚点和各种布局组件,但是我不太了解使用它们的正确方法是什么,什么是“ hacks”。我知道我可以创建一个完全适合我的Samsung Galaxy J2 Prime设备的新预设设备,但是感觉不对,因为这最终意味着我需要为数十个(甚至数百个)设备创建预设。

什么是很好的入门点?

1 个答案:

答案 0 :(得分:1)

没有您的代码,当然很难给出适当的建议,但我会尝试给出一些可能性。

  1. 图片和文字是两个不同的组成部分。尝试将它们放在TPanel上,并将其Align属性设置为alLeftalRightTPanel本身可能是alTop,但这取决于您的其他元素。

  2. 您可以要求屏幕的宽度,然后仅将这两个元素(或所有存在的元素)缩放到有关此信息的需求即可。请记住,还有其他方法可以获取显示器的实际尺寸,这只是第一个建议。

    MyWidth := Screen.Monitors[0].Width; 
    
  3. 询问设备DPI。有了这些信息,您就可以基本计算出每种设备的理想选择。

    Result := Round(10 * Self.Monitor.PixelsPerInch / 96);
    

也许最好的办法是将这三种方法结合起来以适应大多数设备。