프로그래밍 언어/Android

Android에서 화면 너비 및 높이 가져 오기

Rateye 2021. 9. 27. 10:42
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
반응형