android中怎样获取标题栏和状态栏

public class GetStausBarAndTitileBarHeightActivity extends Activity {
/** Called when the activity is first created. */
private static final String TAG="GetStausBarAndTitileBarHeightActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);



}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();

/*

decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。
于是,我们就可以算出状态栏的高度了。

*/
//注意:以下代码,如果在oncreate执行,所得值均为0,因为oncreate状态下,系统view并没有出来。
Rect frame = new Rect();

getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);

int statusBarHeight = frame.top;//这里是获得这个矩形的上边缘位置就是这个状态栏的高度了
Log.d(TAG, "statusBarHeight--->"+statusBarHeight);

/*

.获取标题栏高度:
getWindow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到的view就是程序不包括标题栏的部分,然后就可以知道标题栏的高度了。

*/

 

int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();

//statusBarHeight是上面所求的状态栏的高度

int titleBarHeight = contentTop - statusBarHeight;
Log.d(TAG, "titleBarHeight--->"+titleBarHeight);
}
}

你可能感兴趣的:(状态栏,标题栏)