请教个问题 弄了好久都没弄好 
System UI 的宽度 即 system bar的 宽度如何修改
找到了 修改高度的办法  修改状态栏的高度,需要在/frameworks/base/core/res/resalues/dimens.xml文件中修改。
但如何修改 这个system bar 的宽 度  ?对应的控件就是这个
frameworks\base\packages\SystemUI\res\layout\system_bar.xml
<com.android.systemui.statusbar.tablet.TabletStatusBarView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
    android:layout_height="fill_parent"
    android:background="@drawable/system_bar_background"
    >但在这里改高度和宽度完全没用 
    AndroidUI框架控件systemBar

解决方案 »

  1.   

    也是在demens.xml中啊
        <!-- Width of the vertical navigation bar on devices that require it -->
        <dimen name="navigation_bar_width">42dp</dimen>
      

  2.   

    宽度的话代码中应该写死了.
     WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                    ViewGroup.LayoutParams.MATCH_PARENT,
      

  3.   

    这是那个文件?
    PhoneStatusBar.java中创建状态栏的地方,你看下
      

  4.   

    我最终效果是 想将tablet  底部的 system_bar 移动到左侧或者右侧 
      

  5.   

    private void addIntruderView() {
            final int height = getStatusBarHeight();        WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                    ViewGroup.LayoutParams.MATCH_PARENT,
                    ViewGroup.LayoutParams.WRAP_CONTENT,
                    WindowManager.LayoutParams.TYPE_STATUS_BAR_SUB_PANEL,
                    WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
                        | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
                        | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
                        | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                        | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM
                        | WindowManager.LayoutParams.FLAG_SPLIT_TOUCH,
                    PixelFormat.TRANSLUCENT);
            lp.gravity = Gravity.TOP | Gravity.FILL_HORIZONTAL;
            lp.y += height * 1.5; // FIXME
            lp.setTitle("IntruderAlert");
            lp.packageName = mContext.getPackageName();
            lp.windowAnimations = R.style.Animation_StatusBar_IntruderAlert;        WindowManagerImpl.getDefault().addView(mIntruderAlertView, lp);
        }
    类似这种,我忘了是哪个了,你可以修改layout属性就可以达到你要的效果了
      

  6.   


    我改下这个式式 
    private void addStatusBarWindow() {
            final View sb = makeStatusBarView();        final WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
                    ViewGroup.LayoutParams.WRAP_CONTENT,
                    ViewGroup.LayoutParams.WRAP_CONTENT,
                    WindowManager.LayoutParams.TYPE_NAVIGATION_BAR,
                    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
                        | WindowManager.LayoutParams.FLAG_TOUCHABLE_WHEN_WAKING
                        | WindowManager.LayoutParams.FLAG_SPLIT_TOUCH,
                    PixelFormat.OPAQUE);        // We explicitly leave FLAG_HARDWARE_ACCELERATED out of the flags.  The status bar occupies
            // very little screen real-estate and is updated fairly frequently.  By using CPU rendering
            // for the status bar, we prevent the GPU from having to wake up just to do these small
            // updates, which should help keep power consumption down.        lp.gravity = getStatusBarGravity();
            lp.setTitle("SystemBar");
            lp.packageName = mContext.getPackageName();
            mWindowManager.addView(sb, lp);
      

  7.   

    能改高度了 ,我改称了220 高度 上面的 界面就只有500 高了 (总共720) ,我最终效果是 想将tablet  底部的 system_bar 移动到左侧, 除了system_bar 的高度和宽度改变及bar 厘米的控件布局 变更,另外的一个整体布局应该怎么改?  
      

  8.   

     protected int getStatusBarGravity() {
            return Gravity.TOP | Gravity.FILL_HORIZONTAL;
        }Gravity.TOP-->Gravity.LEFT
    Gravity.FILL_HORIZONTAL这个不知道,你试试改改
      

  9.   

    我之前就把这个函数改为了  protected int getStatusBarGravity() {
            return Gravity.TOP | Gravity.FILL_VERTICAL;
        }但没用的