在所有设备的相同位置定位图像的最佳方法?

我已经意识到,我不是100%确定定位一些UI元素的最佳方式,以便它出现在所有设备上的相同位置上。

到目前为止,这些是选项:

  1. 为每个设备设置dp填充
  2. 使View上方此图像,并更改每个设备的填充
  3. Java code计算屏幕大小,并从代码中以generics的方式设置它的位置。 例如,设置该图像位于屏幕高度的1/5,并根据当前设备的屏幕高度应用此公式。
  4. 类似于第2点,但是不是使用固定的dp ,而是使用layout_weight元素

什么似乎是最好的方法?

有没有更好的方法,我没有在这里提到?

谢谢

Solutions Collecting From Web of "在所有设备的相同位置定位图像的最佳方法?"

两个最好的select如下:

  1. 在代码中 – 计算屏幕大小,并使用屏幕的百分比。
  2. 为您的视图使用layout_weight ,为父视图使用weight_sum

代码方法的一个小例子 – 可以说你想要一个View完全是屏幕宽度的25%:

  WindowManager manager = (WindowManager) _context.getSystemService(Activity.WINDOW_SERVICE); int screenWidth = manager.getDefaultDisplay().getWidth(); YOUR_VIEW.getLayoutParams().width = (int) (screenWidth * 0.25);