[¾Èµå·ÎÀ̵å] È¸é »çÀÌÁî ±¸Çϱâ |
|
|
|
8³â Àü |
¾Æ·¡ Äڵ忡¼ 4°¡Áö ¹æ¹ýÀ¸·Î È¸é »çÀÌÁ ±¸ÇÏ°í ÀÖ´Ù.
WindowManager wm = (WindowManager) mActivity.getSystemService(Context.WINDOW_SERVICE);
Window window = mActivity.getWindow();
Rect windowRect = new Rect();
Rect screenRect = new Rect();
//Excludes status bar & soft key
window.getDecorView().getWindowVisibleDisplayFrame(windowRect);
//Whole screen
window.getDecorView().getGlobalVisibleRect(screenRect);
int topGap = windowRect.top - screenRect.top;
// Sometimes, status bar is at bottom...
int bottomGap = windowRect.bottom - screenRect.bottom;
int statusBarHeight = (bottomGap > topGap)? bottomGap:topGap;
Log.i(TAG, "windowRect " + windowRect.toString());
Log.i(TAG, "screenRect " + screenRect.toString());
Point outSize = new Point();
//Content screen
wm.getDefaultDisplay().getSize(outSize);
Log.i(TAG, "outSize " + outSize.toString());
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
Point realSize = new Point();
wm.getDefaultDisplay().getRealSize(realSize);//Whole screen
Log.i(TAG, "realSize " + realSize.toString());
}
½ÇÁ¦ ·Î±×¸¦ Âï¾îº¸¸é, ´ëºÎºÐ °ªÀÌ ¸Â´Âµ¥ Æù¸¶´Ù outSize °ªÀÌ ´Ù¸£°Ô ³ª¿À´Â °æ¿ì°¡ ÀÖ´Ù. ¼ÒÇÁÆ® Å°¸¦ ¾²µç Çϵå¿þ¾î Å°¸¦ ¾²µç outSize¿¡¼ ¾Ë¸²¹Ù ³ôÀÌ°¡ ºüÁ®¼ ³ª¿À´Â °Ô »ó½ÄÀûÀ¸·Î ¸ÂÀ» °Í °°Áö¸¸ ±×·¸Áö ¾Ê´Ù. ¾Æ·¡´Â °¶³ëÆ®4¿Í ³Ø¼½º5¸¦ ºñ±³ÇÑ °ÍÀÌ´Ù.
* soft key device (nexus 5 etc.)
windowRect Rect(0, 75 - 1080, 1776) -->status bar:75, soft key:144
screenRect Rect(0, 0 - 1080, 1920)
outSize Point(1080, 1776) --> Excludes status bar & soft key
realSize Point(1080, 1920)
* hard key device(G note4 etc.)
windowRect Rect(0, 100 - 1440, 2560) -->status bar:100
screenRect Rect(0, 0 - 1440, 2560)
outSize Point(1440, 2560) --> Contains status bar ;;
realSize Point(1440, 2560)
Á¶½ÉÇØ¾ß ÇÑ´Ù.
ÀÌ¿Í °ü·ÃÇؼ Á» ´çȲ½º·¯¿î °ÍÀÌ ÀÖ´Ù. PopupWindow¸¦ ȸé ÇÏ´Ü¿¡ ¶ç¿ì·Á°í showAtLocation(View parent, Gravity gravity, int x, int y)À» ½ÇÇàÇß´Ù. À̶§ °ªÀÌ (gravity=top, x=0, y=0). »ó½ÄÀûÀ¸·Î outSize.bottom¿¡¼ Ä¿½ºÅÒ ºäÀÇ ³ôÀ̸¸Å »©¸é Ä¿½ºÅÒ ºÎ°¡ ³õÀÏ À§Ä¡°¡ ³ª¿ÃÅÙµ¥, ³Ø¼½º5¿¡¼´Â ²À ¾Ë¸²¹Ù ³ôÀ̸¸Å Â÷ÀÌ°¡ ³´Ù. ³°¨ÇÏ´Ù.. ±×·¡¼ ȸéÀÇ ÇÏ´Ü¿¡ ºä¸¦ ³õ°íÀÚ ÇÑ´Ù¸é windowRect.bottom°ú screenRect.bottom ÀÌ ´Ù¸¥Áö ºñ±³Çغ¸ÀÚ.
mViewY = windowRect.bottom - mContainer.getMeasuredHeight();
if(windowRect.bottom != screenRect.bottom) {
mViewY -= statusBarHeight;
}
Update : G2 ·Ñ¸®ÆË ¹öÀü(¼ÒÇÁƮŰ)¿¡¼´Â ³Ø¼½º5¿Í µ¿ÀÏÇÑ ¼öÄ¡°¡ ³ª¿ÀÁö¸¸, À§ Äڵ带 Àû¿ëÇÒ ¼ö ¾ø´Ù. ¼ÒÇÁÆ® Å°¸¦ °®°í ÀÖ´Â ÆùÀÌÁö¸¸ 0,0 °ªÀÇ ±âÁØÀÌ Æ˾÷ºäÀÇ parent ¿µ¿ª¾È¿¡¼ ¼³Á¤µÇ´Â µí... |
|
̵̧ : 315 |
̵̧
¸ñ·Ï
|
|