Pengen punya gadget kitkat tapi kantong cekak? nih ada solusinya buat
yang pengen statusbar & navbar hh jelly bean ente menjadi bergradien
ala Kitkat!
1. menambahkan trancluent pada navbar & status bar.
1. Decompile android.policy.jar \ com \ android \ internal \ policy \ impl \ PhoneWindowManager.smali
SystemUI.apk \ res \ values \ drawables.xml
SystemUI.apk \ res \ layout \ status_bar.xml
3. Gradien status & navbar
buat 2 XML baru :
di SystemUI \ res \ drawable
[status_bar_background.xml]
[nav_bar_background.xml]
Tambahkan ke integers (SystemUI.apk \ res \ values \ integers)
PERSYARATAN : ANDA
HARUS TAHU CARA DECOMPILE & COMPILE APK DAN FILES JAR, DAN JUGA
MEMODIFIKASI SMALI KODE, DWYOR! (untuk tutor Decompile & compile
insyaallah akan ane share pada post berikutnya) untuk memodifikasinya,
bisa menggunakan Notepad++.
Lets Begin....
* hapus yang berwarna warna merah
* tambahkan yang berwarna biru
* 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
SystemUI.apk \ res \ layout-sw600dp \ navigation_bar.xml
Code:
android:background="#88000000"
Code:
android:background="@drawable/nav_bar_background"
Code:
<item type="drawable" name="status_bar_background">#88000000</item>
Code:
android:background="#FF000000"
Code:
android:background="@drawable/status_bar_background"
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>
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>
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