android framework SystemUI 修改NavigationBar靠右边

2024-06-01 00:32

本文主要是介绍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靠右边的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019478

相关文章

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文