728x90
반응형
질문 : Android에서 화면 너비 및 높이 가져 오기
화면 너비와 높이를 얻고이 값을 다음에서 어떻게 사용할 수 있습니까?
@Override protected void onMeasure(int widthSpecId, int heightSpecId) {
Log.e(TAG, "onMeasure" + widthSpecId);
setMeasuredDimension(SCREEN_WIDTH, SCREEN_HEIGHT -
game.findViewById(R.id.flag).getHeight());
}
답변
이 코드를 사용하여 런타임 디스플레이의 너비 및 높이를 가져올 수 있습니다.
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;
보기에서 다음과 같은 작업을 수행해야합니다.
((Activity) getContext()).getWindowManager()
.getDefaultDisplay()
.getMetrics(displayMetrics);
장치에 탐색 모음이있는 일부 시나리오에서는 런타임에 확인해야합니다.
public boolean showNavigationBar(Resources resources)
{
int id = resources.getIdentifier("config_showNavigationBar", "bool", "android");
return id > 0 && resources.getBoolean(id);
}
기기에 탐색 표시 줄이있는 경우 높이를 계산합니다.
private int getNavigationBarHeight() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int usableHeight = metrics.heightPixels;
getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
int realHeight = metrics.heightPixels;
if (realHeight > usableHeight)
return realHeight - usableHeight;
else
return 0;
}
return 0;
}
따라서 장치의 최종 높이는 다음과 같습니다.
int height = displayMetrics.heightPixels + getNavigationBarHeight();
출처 : https://stackoverflow.com/questions/4743116/get-screen-width-and-height-in-android
728x90
반응형
'프로그래밍 언어 > Android' 카테고리의 다른 글
Android에서 텍스트를 굵게 변경하는 방법 (0) | 2021.09.29 |
---|---|
Android 레이아웃 폴더에 하위 폴더를 포함하는 방법 (0) | 2021.09.29 |
android:onClick XML 속성과 setOnClickListener의 차이점 (0) | 2021.09.27 |
Android에서 URL로 ImageView를 로드하는 방법 (0) | 2021.09.17 |
Android Studio 오류 : /dev/kvm device permission denied (0) | 2021.09.16 |