Android元素在叠加活动中的定位

时间:2015-10-19 20:41:47

标签: android xml android-layout screen-resolution pixel-density

我对Android的应用程序有所了解。我在Android中有一个不错的背景,但我从未遇到像我目前面临的问题。

背景

我正在WhatsApp上创建叠加活动。当您启动WhatsApp时,在叠加活动上会显示一个红色圆圈,并且需要在"新聊天"之上输入完全。 WhatsApp(Android Lollipop)最新版本中的按钮。

使用DP在特定设备上定位时很容易,但如果我在LG G3上测试应用程序,则此圈子将不在正确的位置。

显而易见的答案是我也会创建一个 xxhdpi 布局,但问题是这个圈子需要是动态的,所以如果我希望它在上面搜索按钮,它需要在那里。

句子中的问题

我的问题是基于特定设备上DP的边距,如何确保圆圈在具有相同版本的WhatsApp的所有其他设备上显示在完全相同的位置?

示例:On Note 3(1080p,388 PPI)页边距为30dp,如何使用分辨率知识和DPI知识使圆圈出现在LG G3(1440p,538 PPI)上的相同位置

我尝试了什么

  • 首先是愚蠢的方法将它正确定位在手机上dp并在手机上运行(失败)
  • 其次我尝试根据屏幕宽度以像素为单位进行定位百分比(IE screen_width * 0.75),因此圆圈将始终出现在屏幕的<75%位置(由于屏幕密度失败? 1
  • 第三,我尝试了与第二次尝试相同的方法,但是使用了总屏幕DP而不是原始像素,并将其用作我的相对度量(IE screen_width_dp * 0.75),因此圆圈将始终显示在dp的位置x 75%的屏幕。 2 失败)

备注

在所有测试中,我确保我使用的单位是正确的,例如,如果我有screen_width_dp x 0.75我确保在设置边距之前将DP转换为PX。

1 - 为什么会失败?使用屏幕分辨率。

2 - 为什么尝试失败?

这是在Note 3(1080p,388 PPI)作为基本手机进行测试,LG G3(1440p,538 PPI)作为辅助手机进行测试,圆圈应相对移动以正确放置。

谢谢!

0 个答案:

没有答案