android framework SystemUI 修改NavigationBar靠右边

来源:互联网 发布:淘宝男装店铺简介 编辑:程序博客网 时间:2024/06/01 12:05

1、alps\frameworks\base\policy\src\com\android\internal\policy\impl\PhoneWindowManager.java找到这个文件 然后 在 public void setInitialDisplaySize(Display display, int width, int height, int density) {}方法中找到  mNavigationBarCanMove = true;//shortSizeDp < 600; //syc 20141112   mNavigationBarCanMove这个变量就代表NavigationBar是否能移动 安卓源码默认提供了修改到右边的方法。

2、就是需要修改SystemUI中的布局了 别着急 跟着我继续找 alps\frameworks\base\packages\SystemUI\res\layout\navigation_bar.xml  我把布局中我修改的代码拿出来

<com.android.systemui.statusbar.phone.NavigationBarView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:background="@drawable/system_bar_background"
    >


    <FrameLayout android:id="@+id/rot0"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        >


        <LinearLayout
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:orientation="vertical"
            android:clipChildren="false"
            android:clipToPadding="false"
            android:id="@+id/nav_buttons"
            android:animateLayoutChanges="true"
            >
            <!-- navigation controls -->
            <View
                android:layout_width="match_parent"
                android:layout_height="8dp"
                
                android:layout_marginLeft="2dp"
                android:visibility="invisible"
                />
            <Space 
                android:layout_width="match_parent"
                android:layout_height="28dp"
                
                />
<!--add by zhengshan begin-->   
            <com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/volume_up"
                android:layout_width="match_parent" 
                android:layout_height="wrap_content"
                android:background="@drawable/my_volume_up"
                systemui:keyCode="24"
               
                systemui:glowBackground="@drawable/ic_sysbar_highlight"
android:contentDescription="@string/accessibility_recent"
                />
              <!--add by zhengshan end-->       

            <!-- add by zhengshan begin-->     
             <com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/volume_down"
                android:layout_width="match_parent" 
                android:layout_height="wrap_content"
android:layout_marginTop="38dip"
                android:background="@drawable/my_volume_down"
                systemui:keyCode="25"
                
                systemui:glowBackground="@drawable/ic_sysbar_highlight"

                />                 
            <!-- add by zhengshan end-->  


<LinearLayout 
android:layout_height="wrap_content" 
android:layout_width="wrap_content" 
android:orientation="horizontal" 
android:layout_marginTop="50dip"


<ImageButton  
android:id="@+id/hide_bar_btn"  
android:layout_height="52dp"  
android:layout_width="22dp"
android:layout_marginTop="15dip"
android:background="@drawable/ic_sysbar_hidden"> 
</ImageButton> 



<ImageButton  android:id="@+id/voice_apps"
android:layout_width="match_parent" 
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:layout_marginLeft="10dip"

android:background="@drawable/my_voice"
systemui:glowBackground="@drawable/ic_sysbar_highlight"
/>
</LinearLayout>


            <com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/back"
                android:layout_width="match_parent" 
                android:layout_height="wrap_content"
                android:src="@drawable/my_back"
                systemui:keyCode="4"
                android:layout_marginTop="55dip"
                systemui:glowBackground="@drawable/ic_sysbar_highlight"
                android:contentDescription="@string/accessibility_back"
                />
            <com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/home"
                android:layout_width="match_parent" 
                android:layout_height="wrap_content"
                android:src="@drawable/my_home"
                systemui:keyCode="3"
                systemui:keyRepeat="true"
                android:layout_marginTop="50dip"
                systemui:glowBackground="@drawable/ic_sysbar_highlight"
                android:contentDescription="@string/accessibility_home"
                />
            
            <Space 
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                
                />
            <com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/menu"
                android:layout_width="48dp"
                android:layout_height="match_parent"
                android:src="@drawable/ic_sysbar_menu"
                android:layout_marginRight="2dp"
                systemui:keyCode="82"
                android:visibility="invisible"
                android:contentDescription="@string/accessibility_menu"
                systemui:glowBackground="@drawable/ic_sysbar_highlight"
                />
        </LinearLayout>


        <!-- lights out layout to match exactly -->
        <LinearLayout
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:orientation="horizontal"
            android:id="@+id/lights_out"
            android:visibility="gone"
            >
            <Space 
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                />
<!--add by zhengshan begin-->
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@+id/recent_apps"
                android:layout_width="match_parent" android:paddingStart="0dp" android:paddingEnd="0dp"
                android:layout_height="88dp"
                android:src="@drawable/ic_sysbar_recent"
                systemui:glowBackground="@drawable/ic_sysbar_highlight"
android:visibility="gone"
                />
            <ImageView
                android:layout_width="128dp" android:paddingLeft="25dp" android:paddingRight="25dp"
                android:layout_height="match_parent"
                android:layout_marginLeft="40dp"
                android:src="@drawable/ic_sysbar_lights_out_dot_small"
                android:scaleType="center"
                android:layout_weight="0"
                />
            <ImageView
                android:layout_width="128dp" android:paddingLeft="25dp" android:paddingRight="25dp"
                android:layout_height="match_parent"
                android:src="@drawable/ic_sysbar_lights_out_dot_large"
                android:scaleType="center"
                android:layout_weight="0"
                />
            <ImageView
                android:layout_width="128dp" android:paddingLeft="25dp" android:paddingRight="25dp"
                android:layout_marginRight="40dp"
                android:layout_height="match_parent"
                android:src="@drawable/ic_sysbar_lights_out_dot_small"
                android:scaleType="center"
                android:layout_weight="0"
                />
            <Space 
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                />
        </LinearLayout>

3、其中涉及到一些图片资源的添加 自己应该能看得出来 然后添加图片之后 还需要添加事件 需要在alps\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\NavigationBarView.java 和PhoneStatusBar.java 添加代码 

0 0
原创粉丝点击