我有一个适用于 Android 的应用程序的想法。我在 Android 方面有不错的背景,但我从未遇到过像我目前面临的问题。
背景
我正在 WhatsApp 之上创建一个覆盖活动。当您启动 WhatsApp 时,覆盖活动上会显示一个红色圆圈,并且需要在最新版本的 WhatsApp(Android Lollipop)中的“新聊天”按钮正上方输入它。
在特定设备上使用 DP 定位时这很容易,但如果我在我的 LG G3 上测试应用程序,这个圆圈将不在正确的位置。
显而易见的答案是我也会创建一个xxhdpi布局,但问题是这个圆圈需要是动态的,所以如果我希望它位于搜索按钮上方,它必须在那里。
造句问
我的问题是基于特定设备上 DP 的边距,如何确保圆圈出现在具有相同版本 WhatsApp 的所有其他设备上的完全相同的位置?
示例:Note 3 (1080p, 388 PPI) 边距右边为 30dp,如何使用分辨率知识和 DPI 知识使圆圈出现在我的 LG G3 (1440p, 538 PPI) 上的同一位置
我试过的
- 首先是用 dp 在电话一上正确定位并在电话二上运行的愚蠢方法(失败)
- 其次,我尝试根据屏幕宽度以像素乘以百分比(IE screen_width * 0.75)定位,因此圆圈将始终出现在屏幕的 x 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) 作为辅助手机上测试的,圆圈应该相对移动才能正确放置。
谢谢!