我们想要在volume、back、menu同一排添加一个虚拟按键,并且触发一个应用;

1、首先我们要找到这些虚拟按键的位置:\frameworks\base\packages\SystemUI\res\layout-sw600dp\navigation_bar.xml

2、横屏时,最左边的RelativeLayout 中添加:

......

android:layout_height="match_parent"

android:layout_width="match_parent"

>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="left">

android:id="@+id/img_logo"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="left|center_vertical"

android:paddingLeft="5.0dip"

android:src="@drawable/img_logo"

systemui:glowBackground="@drawable/ic_sysbar_highlight"

android:contentDescription="@string/accessibility_recent"/>

......

竖屏时,最左边的RelativeLayout 中添加:

......

android:layout_height="match_parent"

android:layout_width="match_parent"

android:visibility="gone"

android:paddingTop="0dp"

>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="left">

android:id="@+id/img_logo"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="left|center_vertical"

android:paddingLeft="5.0dip"

android:src="@drawable/img_logo"

systemui:glowBackground="@drawable/ic_sysbar_highlight"

android:contentDescription="@string/accessibility_recent"/>

......

3、添加java触发代码:\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\NavigationBarView.java

(1)  ......

import android.content.ComponentName;//add Await

(2) //add Await 返回图标

public View getImgLogo(){

return mCurrentView.findViewById(R.id.img_logo);

}

(3)添加触发应用:

public void setNavigationIconHints(int hints, boolean force) {

if (!force && hints == mNavigationIconHints) return;

final boolean backAlt = (hints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) != 0;

if ((mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) != 0 && !backAlt) {

mTransitionListener.onBackAltCleared();

}

if (DEBUG) {

android.widget.Toast.makeText(mContext,

"Navigation icon hints = " + hints,

500).show();

}

mNavigationIconHints = hints;

((ImageView)getBackButton()).setImageDrawable(backAlt

? (mVertical ? mBackAltLandIcon : mBackAltIcon)

: (mVertical ? mBackLandIcon : mBackIcon));

((ImageView)getRecentsButton()).setImageDrawable(mVertical ? mRecentLandIcon : mRecentIcon);

//add Await

((ImageView)getImgLogo()).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent mIntent = new Intent( );

mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

ComponentName comp = new ComponentName("com.xintu.navcity", "com.xintu.navcity.MainActivity");

mIntent.setComponent(comp);

mIntent.setAction("android.intent.action.VIEW");

mContext.startActivity(mIntent);

}

});

setDisabledFlags(mDisabledFlags, true);

}

虚拟按键自己触发的java代码_在SystemUI添加虚拟按键相关推荐

  1. 给定下面的java代码_则运行_会产生类型的异常_JavaSE_笔试题_单选选择题

    JavaSE_笔试题_单选选择题1 1. 下面哪一种描述是正确的()? A:abstract修饰符可修饰字段.方法和类. B:抽象方法的body部分必须用一对大括号{}包住. C:声明抽象方法,大括号 ...

  2. 连连看java代码_连连看 - java代码库 - 云代码

    [java]代码库/* * To change this license header, choose License Headers in Project Properties. * To chan ...

  3. 关联规则java代码_重量挖掘关联规则挖掘方法,哪个大神可以将以下伪代码转换为Java代码?...

    重量挖掘关联规则挖掘方法,哪个大神可以将以下伪代码转换为Java代码? 10 改进的加权关联规则算法的基本步骤与Apriori算法相似: 首先找到加权支持度不小于用户指定的最小加权支持度的所有频繁项集 ...

  4. amd cpu不能在cmd环境下运行java代码_「我们一起学Java02」JDK、JRE、JVM简介,Java开发平台的搭建...

    Hello,各位头条的读者大家好!接下来一段时间小编将和大家一起学习Java,"我们一起学Java"专题将会持续更新,欢迎大家关注.这里是"我们一起学Java" ...

  5. amd cpu不能在cmd环境下运行java代码_如何在Windows10中配置java的JDK环境

    今天给大家分享一下如何配置java的JDK环境.操作步骤如下: 1.下载好 jdk 的安装文件,我下载的是 jdk-10.0.1_windows-x64_bin.exe 这个版本的安装文件: 2.使用 ...

  6. java 代码 _程序员用1.5小时写出的Java代码,让同事瞠目结舌!直呼优秀

    1.曾经不止一次在生产中见过类似这样的代码: 这有很多变种,例如用 Integer.valueOf(1). (Integer)1 之类的,那些细节都不重要.重要的是:凭空用一个 Integer 对象作 ...

  7. 双表查询java代码_多表增删改查

    [java]代码库package com.ww.service; import java.lang.reflect.Array; import java.sql.Connection; import ...

  8. 希尔排序java代码_希尔排序及希尔排序java代码

    由上图可看到希尔排序先约定一个间隔(图中是4),然后对0.4.8这个三个位置的数据进行插入排序,然后向右移一位对位置1.5.9进行插入排序按照此规律直到全部参与了排序.然后将间隔约定为4-1=3,然后 ...

  9. 冒泡排序java代码_面试官问我插入排序和冒泡排序哪个更牛逼?

    (给算法爱好者加星标,修炼编程内功) 来源:小鹿动画学编程,作者:小鹿同学 写在前边 排序对于每个开发者来讲,都多多少少知道几个经典的排序算法,比如我们之前以动画形式分享的冒泡排序,也包括今天要分享的 ...

最新文章

  1. 吴甘沙:天外飞“厕”、红绿灯消失,未来无人驾驶将被重新定义 | AI ProCon 2019
  2. 新版信标的信号板调试
  3. db2和mysql语句区别_db2和mysql语法的区别是什么
  4. 北京市交管局联合高德地图发布北京中考出行提示
  5. 在tomcat服务器部署finereport
  6. android 入门-android Studio 配置
  7. 半吊子架构师,一来就想干掉RabbitMQ
  8. tftp服务器默认ip怎么修改,tftp服务器的ip地址
  9. win10清理_win10系统怎么一键清理系统垃圾
  10. java数组逆序_Java 数组的排序、逆序
  11. Android 仿京东淘宝多规格选择
  12. 邮件解析引擎FastMail库使用
  13. WAP网站流量分析 WAP流量统计 wap网站流量统计
  14. 01-Spring的初体验:spring工厂的化过程
  15. 马洛斯需求层次模型在用户体验中的理解
  16. iOS开发:下架App的步骤
  17. 期末项目——同源药膳堂
  18. 算法代码备忘录(2)
  19. 恢复账套提示文件上的媒体簇结构不正确_用友U8软件用友固定资产(账套数据结构不正确)...
  20. vs+qt环境下, 对stk进行二次开发笔记

热门文章

  1. 深度好文 | 战“疫”上云正当时:打开云计算的正确姿势
  2. AI赋能红外测温助力精准防控疫情……
  3. C++和Lua交互教程(基于LuaBridge)
  4. js 可以做什么东西_Deno需要做什么才能取代Node.js?
  5. redis rdb aof区别_Redis(三):持久化RDB,fork.copyonwrite,AOF,RDBamp;AOF混合使用
  6. 表单提交连续点击html,通过提交“点击”触发器提交两次HTML表单
  7. Nginx实现通过不同的url前缀访问不同的前后端项目
  8. 启动vue项目失败,报错Failed at the node-sass@4.14.1 postinstall script.
  9. Linux Shell脚本专栏_批量创建100用户并设置密码脚本_03
  10. 企业实战01_Linux下安装ActiveMQ并设置开机启动