2013-07-03 42 views
0

所以我創造,我希望出現在特定位置的自定義彈出菜單或工具提示,但我發現,在彈出菜單中出現取決於屏幕分辨率的不同位置,有一些計算,我需要考慮,以確保無論該平板電腦的屏幕分辨率是多少,彈出式菜單/工具提示是否出現在相同的位置?如何讓pupup菜單出現在同一位置,而不管屏幕分辨率如何?

+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(location); 矩形anchorRect =新的Rect(位置[0],位置[1],位置[0] + view.getWidth(),位置[1] + view.getHeight()); yPos = anchorRect.top; –

+0

如果你是固定你彈出來一些其他的看法(這就是我理解你的代碼段),那麼我會認爲你的觀點是在錯誤的位置。在這種情況下,它取決於如何將錨定視圖添加到佈局(通過XML或代碼) –