如何指定屏幕元素(按钮、标签、图像等)按像素或相对位置出现在屏幕上的特定位置?例如以下假设情况:
- 元素居中,像素为350x500y
- 元素放置在屏幕下方65%和左侧40%的位置,占屏幕宽度的30%。
- 元素B放置在元素A右边25像素处
我看过几个关于GUI构建器的教程视频& &;布局管理器和阅读开发人员指南的几个部分,但不明白如何完成这些看似基本的任务。
你可以使用从自定义布局管理器到少量边距设置的工具来完成所有这些,但大多数这些期望都是"错误的"。
在分辨率/密度可以发生根本变化的移动设备上,基于像素或甚至倾角放置内容是没有意义的,例如你的应用需要在iPhone 3gs 320x480或480x320上看起来很好(这将使选项1无关紧要),然后它需要在iPad pro 2732x2048上看起来不错,密度差是3倍,这意味着任何标准像素在iPad pro上看起来都会小3倍!
你需要考虑距离的倾角(毫米),而不是像素。然后,你需要改变你对定位的看法,从逻辑上而不是绝对的角度来思考,比如,居中、向左等等。
关于你的观点:
-
你可以用很多方法做到这一点,所有这些方法都是不正确的,因为它们会在各种设备上断开。您可以像开发人员指南中解释的那样实现自己的布局管理器。您也可以使用像素/毫米的边距来移动组件的位置。
-
与1相同的答案,margin支持百分比,毫米和像素。要确定宽度/高度,只需重写
calcPreferredSize()
方法,但这又是一个有问题的概念,因为你可能会与密度改变图像/字体大小的事实相冲突。 -
这是一个有效的边距使用,尽管我将使用像3-4毫米这样的东西,这样它将在不同的设备上看起来一致。