Z1 でナビバーを透過する

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

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

Z1ではステータスバーの透過はSystemUI Patcherで他のXposedモジュールで書き換えられるように出来ますが、
ナビバーは黒のままで透過の設定をしても反映されませんでした。
[追記]
GEM Xperia Xposedが更新され、ナビバーの透過ができるようになりました。
角丸のまま透過にできます。
Z1ではxmlでナビバーの背景の色を変えるだけでは透過されなくなりました。
透過を有効化するには
SystemUI.apk\smali\com\android\systemui\statusbar\phone\NavigationBarView.smali
を編集しないといけません。(そのうち誰かがXposedモジュールを作ってくれると思いますw)
NavigationBarView.smaliを開き、

setAlpha

で検索します。
すると

上の画像のように

invoke-virtual {v1, v3}, Landroid/view/View;->setAlpha(F)V
    .line 403
    if-eqz p1, :cond_5
    const/high16 v3, 0x3f800000
    :goto_4
    invoke-virtual {v0, v3}, Landroid/view/View;->setAlpha(F)V
    .line 404
    if-eqz p1, :cond_6
    const/4 v3, 0x0
    :goto_5
    invoke-virtual {v0, v3}, Landroid/view/View;->setVisibility(I)V
    .line 406
    const/4 v3, 0x0
    invoke-virtual {v2, v3}, Landroid/view/View;->setAlpha(F)V
    .line 407
    const/16 v3, 0x8
    invoke-virtual {v2, v3}, Landroid/view/View;->setVisibility(I)V

このようなコードが見つかります。
const/high16 v3, 0x3f800000とconst/16 v3, 0x8をそれぞれ

const/high16 v3, 0x0

const/16 v3, 0x0

と書き換えます。(const/high16 v3, 0x3f800000の方だけでいいかもしれません)
後は上書き保存してコンパイルした後zipを作るなどしてインストールすれば完了です。
これでTinted Status Barなどで透過度を指定すれば反映されます。
monxDIFIED ★ Honam1Z™ 030000c用のzipはここからダウンロードできます。


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

Twitter: @AndroPlus_org

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