ナビバーのボタン配置変更

この記事の賞味期限は切れています。
投稿から1年以上経過しているため、情報が古い可能性があります。

当サイトで紹介するMODやアプリなどの内、システムファイルの改変やシステムに深く関わるものはroot化やリカバリが必須となります(root化の必要なしと明記している場合は除く)。導入は自己責任で行ってください。また、技適の無い機器の使用は自己責任です。

ナビゲーションバーのボタンの配置を変更します。
(これまたLMTを使っているので私にとっては不要なのですが)



SystemUI.apk\res\layout\navigation_bar.xml
このファイルでナビバーのボタン配置が指定されています。

最初の

<LinearLayout android:orientation=”horizontal” android:id=”@id/nav_buttons” android:clipChildren=”false” android:clipToPadding=”false” android:layout_width=”fill_parent” android:layout_height=”fill_parent” android:animateLayoutChanges=”true” android:directionality=”none”>

以下が縦画面用で、
最後の方の

<LinearLayout android:orientation=”vertical” android:id=”@id/nav_buttons” android:clipChildren=”false” android:clipToPadding=”false” android:layout_width=”fill_parent” android:layout_height=”fill_parent” android:animateLayoutChanges=”true” android:directionality=”none”>

以下が横画面用です。

ボタン配置は私のsystemUI.apkでは

            <com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/search” android:layout_width=”60.0dip” android:layout_height=”fill_parent” android:src=”@drawable/ic_sysbar_search” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_search” systemui:keyCode=”84″ systemui:glowBackground=”@drawable/ic_sysbar_highlight” />
            <com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/back” android:layout_width=”80.0dip” android:layout_height=”fill_parent” android:src=”@drawable/ic_sysbar_back” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_back” systemui:keyCode=”4″ systemui:glowBackground=”@drawable/ic_sysbar_highlight” />
            <com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/home” android:layout_width=”80.0dip” android:layout_height=”fill_parent” android:src=”@drawable/ic_sysbar_home” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_home” systemui:keyCode=”3″ systemui:glowBackground=”@drawable/ic_sysbar_highlight” />
            <com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/power” android:visibility=”invisible” android:layout_width=”0.0dip” android:layout_height=”fill_parent” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_power” />
            <com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/recent_apps” android:layout_width=”80.0dip” android:layout_height=”fill_parent” android:src=”@drawable/ic_sysbar_recent” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_recent” systemui:glowBackground=”@drawable/ic_sysbar_highlight” />
            <com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/menu” android:layout_width=”60.0dip” android:layout_height=”fill_parent” android:src=”@drawable/ic_sysbar_menu” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_menu” systemui:keyCode=”82″ systemui:glowBackground=”@drawable/ic_sysbar_highlight” />

このようになっています。
この状態だと

この画像のような並びになります。
使わないのでテキトーに変更したままです…。

各ボタンは

<com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/ボタンのID” android:layout_width=”60.0dip” android:layout_height=”fill_parent” android:src=”@drawable/ic_sysbar_ボタンのID” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_ボタンのID” systemui:keyCode=”ボタンのキーコード” systemui:glowBackground=”@drawable/ic_sysbar_highlight” />

というふうになっています。
android:id=でボタンのID、android:src=でボタンの画像、
android:contentDescription=でボタンの説明テキストを指定しています。
特に重要なのがsystemui:keyCode=で、これがボタンの機能を指定しています。
キーコードはこのページで見られます。
framework-res.apk\res\values\attrs.xmlの<attr name=”keycode”>以下にも書かれています。

ボタンの下に
<com.android.systemui.statusbar.policy.KeyButtonView android:id=”@id/recent_apps” android:visibility=”invisible” android:layout_width=”0.0dip” android:layout_height=”fill_parent” android:layout_weight=”0.0″ android:contentDescription=”@string/accessibility_recent” />

というふうに追加するとボタンを長押ししたときの動作にすることができます。

たとえば電源キーはいらないから、と電源キーの部分を他のキーに変えるだけでは
コンパイル時にエラーがでる(public.xmlなどの編集が必要)はずなので、
面倒であれば長押しの部分に指定してやればいいと思います。


Sony Mobile Communicationsのスマートフォン、Xperia向けのカスタマイズや便利なツールを紹介しています。Xperia X PerformanceとZ4 Tabletを使用中で、Androidアプリも開発しています。

Twitter: @AndroPlus_org

コメントフォーム右上の「ログイン」メニューで各種SNSアカウントでログインできます。
匿名でコメントしたい場合は、名前とメールアドレスを入力した後「アカウントを作成せず投稿する」にチェックを入れてください。
Disqusに登録すると、返信通知を受け取れます。