내 화면이 1080x1920입니다. 녹색 선의 높이는 1794, 빨간색 선은 63 (상태 표시 줄) + 84 (TitleBar) = 147, 보라색 선은 -1584입니다. 왜 보라색 선에 빨간색 선을 추가하여 녹색 선의 높이를 얻지 못합니까?높이 값의 차이가 나는 이유는 무엇입니까?
보라색 라인은 상대 레이아웃의 높이를 나타내며, 나는 onWindowFocusChanged()
에서이 코드를 찾을 :
RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.myRelativeLayout);
Log.i(TAG, "Relative layout height: "+String.valueOf(relativeLayout.getHeight()));
레드 라인은 제목 표시 줄과 상태 표시 줄의 높이가 나타내는 I이 그것을 발견 코드 onWindowFocusChanged()
:
Rect rectangle = new Rect();
Window window = getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectangle);
int statusBarHeight = rectangle.top;
int contentViewTop = window.findViewById(Window.ID_ANDROID_CONTENT).getTop();
int titleBarHeight= contentViewTop - statusBarHeight;
Log.i(TAG, "StatusBar Height= " + statusBarHeight + " , TitleBar Height = " + titleBarHeight);
녹색 줄 전체 프로그램의 높이를 나타낼 것이라고 가정합니다. 그리고 나는 onWindowFocusChanged()
에서이 코드를 찾을 :
Display mdisp = getWindowManager().getDefaultDisplay();
Log.i(TAG, "mdisp: "+String.valueOf(mdisp));
Point mdispSize = new Point();
mdisp.getSize(mdispSize);
int maxX = mdispSize.x;
int maxY = mdispSize.y;
Log.i(TAG, "Max X, Y: "+String.valueOf(maxX)+", "+String.valueOf(maxY));
XML 레이아웃 파일 내용 :
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="lt.wilkas.stackoverflowquestion.MainActivity"
android:id="@+id/myRelativeLayout">
</RelativeLayout>
일부 패딩? 그림자 패딩? –
어쩌면, 그러나 그들은 어디에 적용합니까? 이 문제를 해결하기 위해 노력하고 있어요 http://stackoverflow.com/questions/39187745/how-to-implement-detection-of-a-view-being-dragged-over-another-view하지만 이러한 불일치 좌표에서 날 가져옵니다. 혼란 스럽군요 : ( – wilkas