как узнать размер области выреза в процентах в андроиде - PullRequest
0 голосов
/ 01 ноября 2019
View mainRootView = mainDecorView.findViewById(android.R.id.content).getRootView();
    if (Build.VERSION.SDK_INT > 19)
    {
        mainRootView.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() {
            @Override
            public WindowInsets onApplyWindowInsets(View v, WindowInsets insets) {

                if (Build.VERSION.SDK_INT >= 28)
                {
                    DisplayCutout cutout = insets.getDisplayCutout();
                    if (cutout != null)
                    {
                        android.view.Display display = getWindowManager().getDefaultDisplay();
                        android.graphics.Point displaySize = new android.graphics.Point();

                        display.getRealSize(displaySize);

                        // store safezone independent of resolution
                        float invX = 1.0f / (displaySize.x != 0.0f ? displaySize.x : 1.0f);
                        float invY = 1.0f / (displaySize.y != 0.0f ? displaySize.y : 1.0f);
                        safezoneF.left = (safezone.left = cutout.getSafeInsetLeft()) * invX;
                        safezoneF.top = (safezone.top = cutout.getSafeInsetTop()) * invY;
                        safezoneF.right = (safezone.right = cutout.getSafeInsetRight()) * invX;
                        safezoneF.bottom = (safezone.bottom = cutout.getSafeInsetBottom()) *invY;
                        nativeSetSafezoneInfo(displaySize.y > displaySize.x, safezoneF.left, safezoneF.top, safezoneF.right, safezoneF.bottom);
                    }

                }
                return insets;
            }
        });
    }

Я бы хотел получить размер области выреза в процентах.

Если вы получаете экранное значение с помощью getRealSize, оно изменяется в зависимости от разрешения. Тем не менее, размер выреза всегда постоянен.

ex> Galaxy fold

1

 screen size = 2152, 1536
 Cutout left = 104

2

screen size = 1614, 1152
Cutout left = 104

Пожалуйста, помогите мне !!!

...