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平台上实现消息推送功能

《在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 文

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Linux修改pip临时目录方法的详解

《Linux修改pip临时目录方法的详解》在Linux系统中,pip在安装Python包时会使用临时目录(TMPDIR),但默认的临时目录可能会受到存储空间不足或权限问题的影响,所以本文将详细介绍如何... 目录引言一、为什么要修改 pip 的临时目录?1. 解决存储空间不足的问题2. 解决权限问题3. 提

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Linux文件名修改方法大全

《Linux文件名修改方法大全》在Linux系统中,文件名修改是一个常见且重要的操作,文件名修改可以更好地管理文件和文件夹,使其更具可读性和有序性,本文将介绍三种在Linux系统下常用的文件名修改方法... 目录一、引言二、使用mv命令修改文件名三、使用rename命令修改文件名四、mv命令和rename命