2013-07-03 3 views
0

Итак, я создал настраиваемое всплывающее меню или всплывающее меню, которое я хочу отобразить в определенном месте, но обнаружил, что всплывающее меню отображается в другом месте в зависимости от разрешения экрана, есть ли какой-то расчет, который мне нужно принять во внимание, чтобы убедиться что всплывающее меню/подсказка появляется в одном и том же месте независимо от разрешения экрана планшета?Как сделать кукольное меню в том же месте, независимо от разрешения экрана?

+0

Я использую функцию showAtLocation для отображения элемента в определенном месте на экране. –

ответ

0

Если вы вычисляете смещение в пикселях - вам, очевидно, необходимо учитывать плотность экрана. Сначала я бы посмотрел на DisplayMetrics (в частности, scaledDensity).

Вот как я получаю DisplayMetrics:

Display display = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay(); 
DisplayMetrics metrics = new DisplayMetrics(); 
display.getMetrics(metrics); 


yourOffsetPX *= metrics.scaledDensity; 
+0

У меня есть что-то вроде этого: int [] location = new int [2]; view.getLocationOnScreen (местоположение); Rect anchorRect = new Rect (местоположение [0], местоположение [1], местоположение [0] + view.getWidth(), location [1] + view.getHeight()); yPos = anchorRect.top; –

+0

, если вы привязываете всплывающее окно к другому виду (так я понимаю ваш фрагмент), тогда я бы предположил, что ваше мнение находится в неправильном положении. В этом случае это зависит от того, как вы добавляете привязку к макету (через XML или код) –

Смежные вопросы