Android tv 7.1添加自定义底部状态栏

本文介绍了如何在Android TV 7.1中添加自定义底部状态栏,包括添加音量增减、截图和隐藏功能。主要涉及修改`config.xml`配置文件,以及布局文件`custom_bar_hide.xml`、`custom_capture.xml`、`custom_volume_add.xml`和`custom_volume_subtract.xml`,同时更新了`TakeScreenshotService.java`和`CommandQueue.java`以支持截图和显示导航栏操作。此外,还展示了`NavigationBarGestureHelper.java`中的相关改动。
摘要由CSDN通过智能技术生成

添加定制按钮 音量加 音量减 截屏 隐藏

1. frameworks/base/packages/SystemUI/res/values/config.xml

<string name="config_navBarLayout"translatable="false">

space,capture,back;home;recent,volume_subtract,volume_add,hide,menu_ime</string>

2.frameworks/base/packages/SystemUI/res/values/string.xml

    <string name="accessibility_capture">Capture</string>
    <string name="accessibility_volume_subtract">VolumeSubtract</string>
    <string name="accessibility_volume_add">VolumeAdd</string>
    <string name="accessibility_bar_hide">Hide</string>

3.frameworks/base/packages/SystemUI/res/layout/custom_bar_hide.xml

<com.android.systemui.statusbar.policy.KeyButtonView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:systemui="http://schemas.android.com/apk/res-auto"
    android:id="@+id/ff_bar_hide"
    android:layout_width="@dimen/navigation_key_width"
    android:layout_height="match_parent"
    android:layout_weight="0"
    android:src="@drawable/ic_sysbar_hide"
    android:scaleType="center"
    android:contentDescription="@string/accessibility_bar_hide"
    android:paddingStart="@dimen/navigation_key_padding"
    android:paddingEnd="@dimen/navigation_key_padding"

    />

4.frameworks/base/packages/SystemUI/res/layout/custom_capture.xml

<com.android.systemui.statusbar.policy.KeyButtonView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:systemui="http://schemas.android.com/apk/res-auto"
    android:id="@+id/ff_capture"
    android:layout_width="@dimen/navigation_key_width"
    android:layout_height="match_parent"
    android:layout_weight="0"
    android:src="@drawable/ic_sysbar_screenshot"
    android:scaleType="center"
    android:contentDescription="@string/accessibility_capture"
    android:paddingStart="@dimen/navigation_key_padding"
    android:paddingEnd="@dimen/navigation_key_padding"

    />

5.frameworks/base/packages/SystemUI/res/layout/custom_volume_add.xml

<com.android.systemui.statusbar.policy.KeyButtonView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:systemui="http://schemas.android.com/apk/res-auto"
    android:id="@+id/ff_volume_add"
    android:layout_width="@dimen/navigation_key_width"
    android:layout_height="match_parent"
    android:layout_weight="0"
    android:src="@drawable/add_normal"
    systemui:keyCode="24"
    android:scaleType="center"
    android:contentDescription="@string/accessibility_volume_add"
    android:paddingStart="@dimen/navigation_key_padding"
    android:paddingEnd="@dimen/navigation_key_padding"

    />

6.frameworks/base/packages/SystemUI/res/layout/custom_volume_subtract.xml

<com.android.systemui.statusbar.policy.KeyButtonView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:systemui="http://schemas.android.com/apk/res-auto"
    android:id="@+id/ff_volume_subtract"
    android:layout_width="@dimen/navigation_key_width"
    android:layout_height="match_parent"
    android:layout_weight="0"
    android:src="@drawable/sub_normal"
    systemui:keyCode="25"
    android:scaleType="center"
    android:contentDescription="@string/accessibility_volume_subtract"
    android:paddingStart="@dimen/navigation_key_padding"
    android:paddingEnd="@dimen/navigation_key_padding"

    />

7.frameworks/base/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java

--- a/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java
+++ b/packages/SystemUI/src/com/android/systemui/screenshot/TakeScreenshotService.java
@@ -67,6 +67,20 @@ public class TakeScreenshotService extends Service {
                 case WindowManager.TAKE_SCREENSHOT_SELECTED_REGION:
                     mScreenshot.takeScreenshotPartial(finisher, msg.arg1 > 0, msg.arg2 > 0);
                     break;
+               case 3:
+                    if (mScreenshot == null) {
+                        mScreenshot = new GlobalScreenshot(TakeScreenshotService.this);
+                    }
+                    mScreenshot.takeScreenshot(new Runnable() {
+                        @Override public void run() {
+                            Message reply = Message.obtain(null, 3);
+                            try {
+                                callback.send(reply);
+                            } catch (RemoteException e) {
+                            }
+                        }
+                    }, msg.arg1 > 0, msg.arg2 > 0);
+                   break;
             }
         }

     };

8.frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java

+++ b/packages/SystemUI/src/com/android/systemui/statusbar/CommandQueue.java
@@ -77,6 +77,7 @@ public class CommandQueue extends IStatusBar.Stub {
     private static final int MSG_APP_TRANSITION_FINISHED       = 31 << MSG_SHIFT;
     private static final int MSG_DISMISS_KEYBOARD_SHORTCUTS    = 32 << MSG_SHIFT;
     private static final int MSG_HANDLE_SYSNAV_KEY             = 33 << MSG_SHIFT;
+    private static final int MSG_SHOW_NAVIGATIONBAR            = 34 << MSG_SHIFT;//add feifei


     public static final int FLAG_EXCLUDE_NONE = 0;
     public static final int FLAG_EXCLUDE_SEARCH_PANEL = 1 << 0;
@@ -133,11 +134,20 @@ public class CommandQueue extends IStatusBar.Stub {
         void clickTile(Compo

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值