Android 获取api 11状态栏的高度和位置,以便更改其颜色

Android 获取api 11状态栏的高度和位置,以便更改其颜色,android,android-layout,statusbar,Android,Android Layout,Statusbar,我的应用程序支持api 11。我需要获得状态栏的高度和位置,以便动态更改其颜色。我听说有些平板电脑底部有状态栏。出于这个原因,我也需要这个职位,这样我的代码才能工作。以下方法对我来说是不够的。请有人提出一个解决方案,将做什么我需要的api 11?我不是在找图书馆,但我可能会有一个 我的代码: final View decorView = getWindow().getDecorView(); View view = new View(this); Display display = getWin

我的应用程序支持api 11。我需要获得状态栏的高度和位置,以便动态更改其颜色。我听说有些平板电脑底部有状态栏。出于这个原因,我也需要这个职位,这样我的代码才能工作。以下方法对我来说是不够的。请有人提出一个解决方案,将做什么我需要的api 11?我不是在找图书馆,但我可能会有一个

我的代码:

final View decorView = getWindow().getDecorView();
View view = new View(this);
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point(); display.getSize(size);
final int statusBarHeight = size.y - findViewById(R.id.rootView).getHeight();

view.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, statusBarHeight));
view.setBackgroundColor(getResources().getColor(R.color.dynamic_color));
    ((ViewGroup) decorView).addView(view);
同样,我的目标是动态地将状态栏的颜色(单击按钮)更改为我选择的任何颜色。上面的代码是我找到的一个解决方案,但它不适用于api 11

注意

也许我不应该添加这些信息,但大多数人可能也有同样的问题。我希望能够更改比棒棒糖旧的设备的状态栏颜色,因此下面的代码不好

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    Window window = getWindow();
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    window.setStatusBarColor(Color.BLUE);
}
我可能不介意增加到api 15(尽管我更喜欢低至11的版本,但到目前为止,我的整个应用程序都支持11)