Pengen punya gadget kitkat tapi kantong cekak? nih ada solusinya buat yang pengen statusbar & navbar hh jelly bean ente menjadi bergradien ala Kitkat!
PERSYARATAN : ANDA HARUS TAHU CARA DECOMPILE & COMPILE APK DAN FILES JAR, DAN JUGA MEMODIFIKASI SMALI KODE, DWYOR! (untuk tutor Decompile & compile ada di pos ane sebelumnya) untuk memodifikasinya, bisa menggunakan Notepad++.
Lets Begin....
* hapus yang berwarna warna merah
* tambahkan yang berwarna biru
Ambil file android.policy.jar dari System/framework.
systemUI.apk dari system/app.
1. menambahkan trancluent pada navbar & status bar.
1. Decompile android.policy.jar \ com \ android \ internal \ policy \ impl \ PhoneWindowManager.smali
Cari :
.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 dengan :
const/4 v0, 0x0
return v0
.end method
Selesai, Compile.
2. Decompile SystemUI.apk \ com \ android \ systemui \ statusbar \ phone \ PhoneStatusBar.smali
Cari:
.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
2. Mengedit Statusbar & Navbar backgrond :
SystemUI.apk \ res \ layout \ navigation_bar.xml
SystemUI.apk \ res \ layout-sw600dp \ navigation_bar.xml
Code:
android:background="#88000000"
Code:
android:background="@drawable/nav_bar_background"
SystemUI.apk \ res \ values \ drawables.xml
Code:
<item type="drawable" name="status_bar_background">#88000000</item>
SystemUI.apk \ res \ layout \ status_bar.xml
Code:
android:background="#FF000000"
Code:
android:background="@drawable/status_bar_background"
3. Gradien status & navbar
buat 2 XML baru : di SystemUI \ res \ drawable
[status_bar_background.xml]
Code:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:startColor="#00000000" android:endColor="#99000000" android:angle="@integer/status_bar_bg_gradient_degrees" name="status_bar_background" />
</shape>
[nav_bar_background.xml]
Code:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:startColor="#cc000000" android:endColor="#00000000" android:angle="@integer/nav_bar_bg_gradient_degrees" name="nav_bar_background" />
</shape>
Tambahkan ke integers (SystemUI.apk \ res \ values \ integers)
Code:
<integer name="nav_bar_bg_gradient_degrees">90</integer>
<integer name="status_bar_bg_gradient_degrees">90</integer>
SELESAI, Compile kembali. dan taruh kembali jar dan apk yang telah di compile ke foldernya masing masig.
HASILNYA :
Semoga berhasil, Jika masih ada yang bingung silahkan komentar dibawah. Do With Your Own Risk ! Happy Opreking! :D
Sumber : http://forum.xda-developers.com/galaxy-nexus/general/guide-kitkat-gradient-status-nav-bars-t2504373