本文主要是介绍android framework SystemUI 修改NavigationBar靠右边,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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 添加代码
这篇关于android framework SystemUI 修改NavigationBar靠右边的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!