Позиционирование элемента Android в наложении
У меня есть идея для приложения для Android. У меня приличный опыт работы в Android, но я никогда не сталкивался с такой проблемой, как та, с которой сталкиваюсь в настоящее время.
Фон
Я создаю оверлейную активность поверх WhatsApp. Когда вы запускаете WhatsApp, на оверлейной активности отображается красный кружок, и его необходимо ввести точно над кнопкой "Новый чат" в последней версии WhatsApp (Android Lollipop).
Это легко сделать при позиционировании с помощью DP на определенном устройстве, но этот круг не будет в правильном положении, если я протестирую приложение на моем LG G3.
Очевидный ответ заключается в том, что я бы тоже создал макет xxhdpi, но проблема в том, что этот круг должен быть динамическим, поэтому, если я хочу, чтобы он был выше кнопки поиска, он должен быть там.
Вопрос в предложении
Мой вопрос основан на полях в DP на определенном устройстве. Как я могу убедиться, что круг отображается в точно такой же позиции на всех других устройствах, имеющих ту же версию WhatsApp?
Пример: в примечании 3 (1080p, 388 PPI) правое поле равно 30dp. Как использовать знания разрешения и DPI для отображения круга в одном и том же месте на моем LG G3 (1440p, 538 PPI)
Что я пробовал
- Во-первых, тупой подход к правильному расположению на телефоне один с дп и запуск на телефоне два (не удалось)
- Во-вторых, я попытался расположить изображение в соответствии с шириной экрана в пикселях, умноженной на процент (IE screen_width * 0,75), чтобы круг всегда отображался в положении x 75% экрана (не удалось из-за плотности экрана? 1)
- В-третьих, я попробовал тот же подход, что и во второй попытке, но вместо необработанных пикселей я использовал общий DP экрана и использовал его как относительную меру (IE screen_width_dp * 0,75), поэтому круг всегда будет отображаться в положении x 75% в dp экрана, (Не удалось 2)
Заметки
Во всех тестах я удостоверился, что единицы, с которыми я работаю, правильные, например, если у меня был screen_width_dp x 0,75, я убедился, что перед преобразованием полей я конвертировал DP в PX.
1 - Почему это не получится? используя отношения разрешения экрана.
2 - Почему эта попытка также не удалась?
Это было проверено на Note 3 (1080p, 388 PPI) в качестве базового телефона и LG G3 (1440p, 538 PPI) в качестве дополнительного телефона, относительно которого круг должен перемещаться относительно правильного положения.
Спасибо!