这个问题是这个问题#1的一部分
我正在创建功能以将屏幕截图捕获到 Android 应用程序中。捕获屏幕截图后,我使用以下代码从位图中裁剪导航栏高度。从height - getNavBarHeight()
底部裁剪位图的位置(所以当架子在底部时使用)。但是 Chromebook 提供了在左下角移动架子的功能(见截图)。因此todo
,我需要相应地裁剪位图
if (Utils.isChromeBookDevice(FloatingOverlayViewService.this)) {
bitmap = Bitmap.createBitmap(bitmap, 0, 0, width, height - getNavBarHeight());//width & height is width & height of entire screen
// TODO: 9/11/20 if shelf is in left x = getNavBarHeight(),
// if shelf is in right width = width - getNavBarHeight(),
// if shelf is in bottom height = height - getNavBarHeight()
} else
bitmap = Bitmap.createBitmap(bitmap, 0, statusBarHeight, width, height - statusBarHeight);
/** return the height of navigation bar */
private int getNavBarHeight() {
int result = 0;
int resourceId = getResources().getIdentifier("navigation_bar_height", "dimen", "android");
if (resourceId > 0) {
return getResources().getDimensionPixelSize(resourceId);
}
return result;
}



所以主要问题是导航栏在左侧还是右侧时如何裁剪?
当架子位于底部时,您可以在这些屏幕截图中看到我的问题,我可以使用上面的代码对其进行裁剪。但是左右呢?



问题#2是当架子自动隐藏时,我不需要使用上面的代码裁剪导航栏。所以我还需要检测自动隐藏架是打开还是关闭