这个东搞了几天了,累啊!今天终于有个结果,同志们要找办法的只看3就行了,其他的我只用作记录过程
1.想通过,获取当前ACtivity获取,只有ACtivity才能有getWindow() 可是拿不到Activity的实例啊,
PhoneStatusBarView.java:
/* Rect outRect = new Rect();
getWindowVisibleDisplayFrame(outRect);
int statusHeight = outRect.top;
WindowManager windowManager=(WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display=windowManager.getDefaultDisplay();
Log.v(TAG, "statusBarHeight =====================statusHeight= " + statusHeight);
Log.v(TAG, "statusBarHeight =====================display.getHeight()= " + display.getHeight());
//View.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
//int statusBarHeight = frame.top;
Log.v(TAG, "statusBarHeight ====================== " + statusBarHeight);*/
2.通过phoneStatusBar 的方法setSystemUiVisibility(int vis)找思路:又找到相关资料:http://blog.csdn.net/casun_li/article/details/8963622
但还是无门啊:activity.getWindow().getDecorView().getSystemUiVisibility();只能拿到自己View的Visibility值
OnSystemUiVisibilityChangeListener监听的应该是navigate bar(有待验证)
/* Activity activity=((SystemUIApplication)context.getApplicationContext()).mActivity;
Log.v(TAG, "PhoneStatusBarView +++++++++++++++++++++=activity =" + activity);
mContext=context;
setOnSystemUiVisibilityChangeListener(new OnSystemUiVisibilityChangeListener() {
@Override
public void onSystemUiVisibilityChange(int visibility) {
Log.v(TAG, "@@@@@@@@@@@@@@@@@@@onSystemUiVisibilityChange ======visibility =" +visibility);
}
});*/
/* Activity activity=((SystemUIApplication)mContext.getApplicationContext()).mActivity;
Log.v(TAG, "afterOnLayout ***********************************activity =" + activity);
if(android.os.Build.VERSION.SDK_INT>=11){
int vi=activity.getWindow().getDecorView().getSystemUiVisibility();
int thisvi=getSystemUiVisibility();
Log.v(TAG, "afterOn