Monday, 2 May 2016

Cara Membuat Navigation Bar / Softkey Android menjadi Transparan

guide-how-to-make-transparent-navbar

DenysAndroider - Kali ini saya akan share mengenai guide tentang android pasti yang suka oprek - oprek paham tentang ini, kemarin saya sudah kasih guide tentang cara membuat navbar dan statusbar gradient nah pada kesempatan ini saya akan kasih Guide cara transparanin navbar saja guys transparan sama gradient beda loh ya ! oke langsung saja saya kasih secreenshot navbar yang transparent lihat di bawah ini jangan lihat statusbarnya yah gays karena statusbarnya itu masih gradient, dan guide sebenarnya sama aja tinggal ganti code warnanya saja.

Screenshot :

cara-membuat-navbar-transparan
Transparan NavBar

 

Syarat :

  • HH harus sudah di root
  • Mengerti compile dan decompile apk
  • Berani
  • Yang paling penting kemauan yang keras agar bisa berhasil menggunakan tutorial ini

Tutorial :

  • Pergi ke system/framework ambil android.policy.jar
  • Kemudian Decompile
  • Masuk ke sini gan android.policy.jar.out\com\android\internal\policy\impl\PhoneWindowManager.smali
  • Cari Line di bawah ini :
.method public getSystemDecorRectLw(Landroid/graphics/Rect;)I
  • Code lengkapnya seperti ini gan lihat text yang warna merah, hapus text berwarna merah ganti dengan text berwana biru
.method public getSystemDecorRectLw(Landroid/graphics/Rect;)I
    .locals 1
    .parameter "systemRect"

    .prologue
    .line 2755
    iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemLeft:I

    iput v0, p1, Landroid/graphics/Rect;->left:I

    .line 2756
    iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemTop:I

    iput v0, p1, Landroid/graphics/Rect;->top:I

    .line 2757
    iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemRight:I

    iput v0, p1, Landroid/graphics/Rect;->right:I

    .line 2758
    iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemBottom:I

    iput v0, p1, Landroid/graphics/Rect;->bottom:I

    .line 2759
    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;

    if-eqz v0, :cond_0

    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;

    invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowState;->getSurfaceLayer()I

    move-result v0

    .line 2761
    :goto_0
    return v0

    .line 2760
    :cond_0
    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mNavigationBar:Landroid/view/WindowManagerPolicy$WindowState;

    if-eqz v0, :cond_1

    iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mNavigationBar:Landroid/view/WindowManagerPolicy$WindowState;

    invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowState;->getSurfaceLayer()I

    move-result v0

    goto :goto_0

    .line 2761
    :cond_1
    const/4 v0, 0x0

    goto :goto_0
.end method
  • Ganti ini gan

     const/4 v0, 0x0

     return v0
.end method
  • Finish kemudian compile

Kemudian Editing SystemUI :

  • Ambil SystemUI.apk dari hh anda system/app
  • Kemudian Decompile
  • Kemudian masuk  SystemUI\com\android\systemui\statusbar\phone\PhoneStatusBar.smali
  • Lihat dan cari code berikut ini hapus text berwarna merah tambahkan text berwarna biru
.method private getNavigationBarLayoutParams()Landroid/view/WindowManager$LayoutParams;
    .locals 6

    .prologue
    const/4 v1, -0x1

    .line 792
    new-instance v0, Landroid/view/WindowManager$LayoutParams;

    const/16 v3, 0x7e3

    const v4, 0x840068

    const/4 v5, -0x3

    move v2, v1

    move v5, v1

    invoke-direct/range {v0 .. v5}, Landroid/view/WindowManager$LayoutParams;-><init>(IIIII)V

    .line 803
    invoke-static {}, Landroid/app/ActivityManager;->isHighEndGfx()Z

    move-result v1

    if-eqz v1, :cond_0

    .line 804
    iget v1, v0, Landroid/view/WindowManager$LayoutParams;->flags:I

    const/high16 v2, 0x100

    or-int/2addr v1, v2

    iput v1, v0, Landroid/view/WindowManager$LayoutParams;->flags:I

    .line 807
    :cond_0
    const-string v1, "NavigationBar"

    invoke-virtual {v0, v1}, Landroid/view/WindowManager$LayoutParams;->setTitle(Ljava/lang/CharSequence;)V

    .line 808
    const/4 v1, 0x0

    iput v1, v0, Landroid/view/WindowManager$LayoutParams;->windowAnimations:I

    .line 809
    return-object v0
.end method
  • Kemudian masuk sini gan SystemUI\res\layout\navigation_bar.xml dan
    SystemUI.apk\res\layout-sw600dp\navigation_bar.xml
  • Edit Script seperti text yang berwarna biru
<com.android.systemui.statusbar.phone.NavigationBarView android:background="#88000000" android:layout_width="fill_parent" android:layout_height="fill_parent"
  • Masuk ke SystemUI\res\values\drawables.xml
<item type="drawable" name="system_bar_background">#88000000</item>
<item type="drawable" name="notification_icon_area_smoke">#88000000</item>
  • Jika sudah Compile
  • Finish
Step Push System :
  • Push android.policy.jar yang sudah di edit tadi ke dalam system/framework
  • Push SystemUI yang sudah di edit tadi ke system/app
  • Reboot
  • Finish
Oh iya satu lagi lupa ane cara aktifin navbarnya :
  • Masuk build.prop tambahkan qemu.hw.mainkeys=0 di paling bawah sendiri.
  • Jika di Build.prop agan Sudah ada tulisan qemu.hw.mainkeys=1 Tinggal ganti aja menjadi  qemu.hw.mainkeys=0

Do With Your Own Risk

Thanks to : XDA


EmoticonEmoticon