设置状态栏在屏幕底部显示(基于SDK2.2)
来源:互联网 发布:河北双轨直销软件 编辑:程序博客网 时间:2024/06/08 17:26
修改com.android.server.status.StatusBarService类中的方法:
(1) public void systemReady() {
...
//这里把 Gravity.TOP -> Gravity.BOTTOM
lp.gravity = Gravity.BOTTOM | Gravity.FILL_HORIZONTAL;
lp.setTitle("StatusBar");
lp.windowAnimations = R.style.Animation_StatusBar;
WindowManagerImpl.getDefault().addView(view, lp);
}
(2) void onBarViewAttached() {
...
//这里把 Gravity.TOP -> Gravity.BOTTOM
lp.gravity = Gravity.BOTTOM | Gravity.FILL_HORIZONTAL;
lp.setTitle("TrackingView");
lp.y = mTrackingPosition;
mTrackingParams = lp;
WindowManagerImpl.getDefault().addView(mTrackingView, lp);
}
方法(1)是系统启动的时候,服务读取状态栏时调用的方法。
屏幕加载窗体涉及到进程之间的通讯。而各个窗体加载时都是以状态栏的为参考点,位于状态栏之下的。
如果不修改窗体加载时的参考点,状态栏移到最下面后,则各个窗体会显示在屏幕之外。
窗体的位置计算在PhoneManagerService类中进行。在public void beginLayoutLw()修改:
修改成:mDockBottom = mContentBottom = mCurBottom = ( displayHeight - mStatusBar.getFrameLw().height());
也可以修改成:mDockBottom = mContentBottom = mCurBottom = mStatusBar.getFrameLw().top;
(1) public void systemReady() {
...
//这里把 Gravity.TOP -> Gravity.BOTTOM
lp.gravity = Gravity.BOTTOM | Gravity.FILL_HORIZONTAL;
lp.setTitle("StatusBar");
lp.windowAnimations = R.style.Animation_StatusBar;
WindowManagerImpl.getDefault().addView(view, lp);
}
(2) void onBarViewAttached() {
...
//这里把 Gravity.TOP -> Gravity.BOTTOM
lp.gravity = Gravity.BOTTOM | Gravity.FILL_HORIZONTAL;
lp.setTitle("TrackingView");
lp.y = mTrackingPosition;
mTrackingParams = lp;
WindowManagerImpl.getDefault().addView(mTrackingView, lp);
}
方法(1)是系统启动的时候,服务读取状态栏时调用的方法。
屏幕加载窗体涉及到进程之间的通讯。而各个窗体加载时都是以状态栏的为参考点,位于状态栏之下的。
如果不修改窗体加载时的参考点,状态栏移到最下面后,则各个窗体会显示在屏幕之外。
窗体的位置计算在PhoneManagerService类中进行。在public void beginLayoutLw()修改:
把mDockTop= mContentTop = mCurTop = mStatusBar.getFrameLw().bottom; 更改为:
mDockTop =mContentTop = mCurTop = 0;
即以屏幕的左上角坐标(0,0)为参考点
修改mDockBottom ,mCurBottom, mContentBottom 的值,让它最终的值与下移后的状态栏的TOP位置一样。修改成:mDockBottom = mContentBottom = mCurBottom = ( displayHeight - mStatusBar.getFrameLw().height());
也可以修改成:mDockBottom = mContentBottom = mCurBottom = mStatusBar.getFrameLw().top;
- 设置状态栏在屏幕底部显示(基于SDK2.2)
- 设置actionBar的图标在屏幕底部显示
- Android中设置控件显示在屏幕底部
- 自定义Toast,在屏幕中间显示或者设置距底部的值
- 设置顶到状态栏底部
- 如何让Android中 dialog显示在屏幕底部
- 网页不满屏幕高度时,footer始终显示在底部
- 设置DIV显示在屏幕中间
- java设置界面显示在屏幕中间
- Android activity在屏幕显示方向设置
- Android 底部状态栏 显示与隐藏
- dhtmlx中,在window窗口底部添加状态栏(StatusBar)显示表格分页
- listview数据显示在最底部的设置
- Android 在低版本4.4以上 动态设置状态栏和底部导航栏的背景色
- DialogFragment显示在底部
- ActionBar在底部显示
- DiaLog在底部显示
- 文字在底部显示
- Linux crontab 命令格式与详细例子
- 计算机图书配套源码下载网址
- 2011年11月16日
- 基因水平转移
- 网页的自动定时跳转
- 设置状态栏在屏幕底部显示(基于SDK2.2)
- 1325. Digit Generator
- 导出excel报表的另类方法 输出到多个excel sheet 中
- 第十三周实验报告(2)
- 和暦西暦互换 全角半角チェック
- linux学习——前期一些问题验证(文件描述符、线程)
- PHP模板引擎smarty的内置函数
- [转载]Java中abstract和interface的区别
- 地形渲染的动态LOD四叉树算法详细实现