Related
I've tried services.jar and classes.dex or whatever and I can't find the lines I need to change. Help?
Bump.
Sent from my HTC Aria using XDA App
Bump. Come on guys.
Sent from my HTC Aria using XDA App
Try decompiling SystemUI.apk; edit line that starts with "<com.android.systemui.statusbar.Clock" in file "status_bar.xml".
Add android:textColor="SOME_VALUE"
For example:
<com.android.systemui.statusbar.Clock android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:gravity="left|center" androidaddingRight="6.0dip" android:textColor="#ff0000ff" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
Works for me
Bro. Use spare parts.
giveme13s said:
Try decompiling SystemUI.apk; edit line that starts with "<com.android.systemui.statusbar.Clock" in file "status_bar.xml".
Add android:textColor="SOME_VALUE"
For example:
<com.android.systemui.statusbar.Clock android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:gravity="left|center" androidaddingRight="6.0dip" android:textColor="#ff0000ff" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
Works for me
Click to expand...
Click to collapse
Hello,
I found SystemUI.apk and status_bar.xml ... but I dont know how change it :/
SGS II
go to your decompiled SystemUI folder
Navigate to res>layout>status_bar.xml
find the line that starts with <com.android.systemui.statusbar.Clock
Add this code to that line
Code:
android:textColor="#ff00bafa"
that color is a blue, it can be any RGB color tho. Just make sure you add "ff" to the beginning of the color code
INDEX
-1ST POST: STATUSBAR MODS
-2ND POST: THEMES AND OTHER MODS (CM9 MUSIC ETC)
-3RD POST: BASIC HOW TO'S AND AT THE BOTTOM OF THE POST, GREAT REFERENCES WITH LINKS AND DESCRIPTIONS
Here are some mods for ICS ROM's
Statusbar Mod's confirmed working on:
-aosp's ROM for NS4G
-CM9 v1p1 (GSM + CDMA)
All confirmed on 1/25/12
NOTE: If your ROM gets updated, or you have a request, let me know and I will update mods accordingly. If these mods don't work for you please tell me what ROM your on, which mod you used and what device model you have. Also, please post your STOCK UNMODIFIED SystemUI.apk (/system/app/) and framework-res.apk (/system/framework/) and I will take a look
Screenshots:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Downloads
CENTER CLOCK + CENTER DATE + 0-100% BATTERY MOD FOR CM9 V1P1 (GSM) DOWNLOAD HERE
JUST A 0-100% BATTERY MOD FOR CM9 V1P1 (GSM) DOWNLOAD HERE
JUST A 0-100% ICS BATTERY MOD FOR CM9 V1P1 (CDMA) DOWNLOAD HERE
CENTER CLOCK + CENTER DATE + 0-100% BATTERY MOD FOR CM9 V1 P1 (NS4G) DOWNLOAD HERE
Just a 0-100% Battery Mod for oICS v43
Updated 12-25
OnScreen Buttons Mod + LS Rotation for oICS v43
HOW TO FLASH THESE MODS
-Reboot to Recovery
-Wipe Cache/Dalvik Cache
-Make a Backup (OPTIONAL)
-Flash dalvik-wiper.zip
-Flash MOD
-Fix Permissions
-Reboot
-Updated 1-26
*** PLEASE NOTE, THIS THEME HAS BEEN CHANGING RAPIDLY AND THE SCREEN SHOTS MAY NOT BE UPDATED! ALSO, I MIX UP THE CARRIER LOGO'S FOR EACH ROM IT'S ALMOST ALWAYS DIFFERENT! ALL SCREEN SHOTS WERE UPDATED 1-27-12 ***
I'm very happy to get this out. It contains a lot of png's and xml edits from LunarUi, a theme done by my friend R3D X. You can check out his work here.
Thanks to denverg for the inverted Mms.apk I modded to match the theme
Would also like to thank all of the folks who have tested this for me and who have uploaded their apk's so I don't have to download an entire ROM
Special Thanks to-denverg
-R3D X
-solesonfire
-chalan30
-dome95
-zDune
And all of those who have helped me by uploading apk's, giving advice or pointing out my mistakes!
Please look at the bottom of this post and make sure you download the correct file depending which ROM you are on
Screenshots Updated 1-27-12
DOWNLOADS
FOR CM9 V1P1 (updated 1-23) (NS4G) DOWNLOAD FROM ROM MANAGER OR HERE
FOR CM9 v1p1(updated 1-24) (GSM) DOWNLOAD FROM ROM MANGER OR HERE
FOR oICS V43 (updated 12-25) (CDMA) DOWNLOAD HERE
FOR BRAINMASTER'S STOCK ICS (GSM)(UPDATED 1-24-12) DOWNLOAD HERE
FOR APEX V1 BY BIGXIE (CDMA) DOWNLOAD HERE OR ROM MANAGER (UPDATED 1-27-12)
FOR CODENAME ANDROID V1.2.0 (CDMA) DOWNLOAD HERE OR ROM MANAGER (UPDATED 1-27-12)
FOR GUMMYNEX 0.7.1 (CDMA) (UPDATED 1-29-12) DOWNLOAD HERE OR ROM MANAGER
FOR AOKP V21 (CDMA) DOWNLOAD HERE OR ROM MANAGER (UPDATED 1-27-12)
FOR CODENAME ANDROID V1.2.0 (GSM) DOWNLOAD HERE OR ROM MANAGER (UPDATED 1-27-12)
FOR AOKP MILESTONE 3 (GSM)(UPDATED 2-1-12) DOWNLOAD HERE OR ROM MANAGER
FOR AOKP MILESTONE 3 (CDMA)(UPDATED 2-1-12) DOWNLOAD HERE OR ROM MANAGER
Screenshots of themed Music.apk
UPDATED 1-24
Here is then new CM9 Music apk I themed. Still very much a WIP but any feedback is welcome
Music-CM9-1-24.zip
Flash in recovery
I have a few more things themed, just have to touch them up. Excited to hear feedback, enjoy!
Theming ICS
**If you use these guides for your device all I ask is you link back to this thread so more people can theme ICS for their devices**
I use apktool to for all my decompiling/recompiling purposes. Just a note, this is not a guide on how to set up SDK or apktool. There are tons of guides for that, this is guide on how to set up apktool so you can decompile, recompile, modify and theme ICS apks
I have a Windows 7 laptop, YMMV
Make sure you have latest version of apktool. I have this version and it works fine
So first, you need to update your SDK to the latest version. Open up your SDK Manager and install the latest update. Make sure you update latest Platform tools. After you are done updating, navigate to your SDK path (mine is C:\android-sdk-windows\) and go to platform-tools.
Copy the aapt.exe and paste it in your apktool working folder (my path is C:\apktool)
Now extract the ICS Rom your planning on working on and grab the framework-res.apk from it and put it in your apktool folder
Open up cmd and cd your apktool folder. Next, install ICS resources by
Code:
apktool if framework-res.apk
Now your set.
How to Change Battery in ICS ROM
After you got apktool all set up with ICS resources installed get the SystemUI.apk from your ICS ROM, put it in your apktool folder and decompile it.
Make sure you have installed framework-res.apk in apktool prior to decompiling ICS apks
Navigate to your decompiled SystemUI folder, go to /res/drawable-hdpi/
This is where the battery png's are in ICS. Copy/paste your battery png's. To make it more easy, make sure your png's follow the pattern (stat_sys_battery_1.png, etc)
If you plan on changing the png's for charging animation make sure you have the correct png's named stat_sys_battery_charge_anim0.png etc
Delete leftover battery png's, if any, from stock ICS
Once all your png's are in place, you need to modify the corresponding xml's
Those are found in SystemUI/res/drawable/stat_sys_battery.xml and stat_sys_battery_charge.xml
If your using battery png's from a Theme you can grab their corresponding xml's from the /res/drawable folder from the theme, just open up the xml's and make sure the xml is calling upon the correct png's
Now that you have your png's and xml's in place, go back to cmd and recompile
Code:
apktool b SystemUI SystemUI-battery.apk
Now, if you have used apktool to recompile you need to sign the apk. ONLY SIGN IT IF YOU USED APKTOOL! I don't know what the process is using Apk Manager
Rename to just SystemUI.apk and make a flashable zip out of it or push with adb and change permissions to rw-r--r--
How to Enable Lockscreen Rotation (ICS)
This one is pretty easy
-decompile framework-res.apk using apktool
-navigate to decompiled folder, go to /res/values/bools.xml
-change "config_enableLockScreenRotation" to "true"
-recompile framework-res.apk
-If you used apktool, sign it, and make a flashable zip to push it to /system/framework/
HOW TO CENTER CLOCK
-decompile your SystemUI.apk
-navigate to your decompiled folder and go to res>layout>status_bar.xml
-look for this line:
Code:
<com.android.systemui.statusbar.policy.Clock
-delete the stock clock line, delete the entire line
-next go to the top of your status_bar.xml and place your cursor at the end of this line:
Code:
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
-press "enter" to create an empty line
-place your cursor at the beginning of that empty line and paste this line of code:
Code:
<LinearLayout android:gravity="center" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="center" android:paddingTop="3.0px" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:layout_weight="1.0" />
</LinearLayout>
-make sure everything lines up (see my xml below)
-lastly, find this line:
Code:
<LinearLayout android:orientation="horizontal" android:id="@id/ticker"
-right after "@id/ticker" add this drawable:
Code:
android:background="@drawable/status_bar_bg_tile"
That's it for the Center Clock. Recompile and if you used apktool sign your new SystemUI.apk using apkmanager (option 16)
Here is an example of how your status_bar.xml should look like
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.PhoneStatusBarView android:orientation="vertical" android:background="@drawable/status_bar_background" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<LinearLayout android:gravity="center" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="center" android:paddingTop="3.0px" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:layout_weight="1.0" />
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/icons" android:paddingLeft="6.0dip" android:paddingRight="6.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="horizontal" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/stat_notify_more" />
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" />
</LinearLayout>
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent">
<include android:id="@id/signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/signal_cluster_view" />
<ImageView android:id="@id/battery" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:background="@drawable/status_bar_bg_tile" android:paddingLeft="6.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageSwitcher android:id="@id/tickerIcon" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:layout_marginRight="4.0dip">
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="center" />
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="center" />
</ImageSwitcher>
<com.android.systemui.statusbar.phone.TickerView android:id="@id/tickerText" android:paddingTop="2.0dip" android:paddingRight="10.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
</com.android.systemui.statusbar.phone.TickerView>
</LinearLayout>
</com.android.systemui.statusbar.phone.PhoneStatusBarView>
HOW TO PUT CUSTOM CARRIER LOGO IN STATUSBAR
-Decompile your SystemUI.apk from whatever ROM your using
-Navigate to your decompiled folder and go to /res/layouts/status_bar.xml
-Look for the line of code that starts with this
Code:
<com.android.systemui.statusbar.StatusBarIconView
-Place your cursor at the beginning of that line and press "ENTER" to create an empty line right above it
-In that empty line, copy/paste this line of code
Code:
<com.android.systemui.statusbar.phone.CarrierLabel android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:textColor="@android:color/transparent" android:background="@drawable/carrier_logo" android:gravity="center_vertical" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:layout_alignParentLeft="true" />
-Make sure everything "lines up" in your xml (no odd spacing or empty lines)
-Next, you need to select an image you want displayed in your statusbar. I usually stick to one no greater than 100 pixels wide and 45 pixels in height
-Whatever image you decide to use make sure it's in ".png" format and name it "carrier_logo" (with out the quotes)
-Place your carrier_logo.png in the /res/drawable-hdpi/ folder
-Now you can build your new SystemUI, if you used apktool to do all of this don't forget to sign your apk
Here's what mine looks like
HOW TO MAKE A FLASHABLE ZIP FOR YOUR MODIFIED APK
-Download this zip here
-Extract it
-navigate to the /system/app/ folder
-place your modified apk's in that folder
-if your flashing a modified framework-res.apk or anything from /system/framework/ simply create a folder within the system folder and name it "framework" without the quotes and place the apk (framework-res.apk) or jar in there.
-navigate back until you only see the META-INF folder and the system folder
-if you want, you can edit the updater-script found in /META-INF/com/google/android/. Using a text editor open up the updater-script and change some of the UI Print (Mine all say "Flashing some Mod by fergie716" so you can change it to whatever). BUT IF YOUR NEW OR UNSURE DO NOT MESS WITH ANYTHING ELSE IN THE UPDATER SCRIPT, JUST THE UI PRINT
-select both the META-INF and system folders and zip them up (I use 7-zip with default zip settings)
-place your newly created zip on your SD and flash in recovery
-**Just a note, this was made especially for the NS/NS4G so IDK if it'll work for other devices. My updater-script also cleans dalvik-cache before installing. This is also for system apps/framework ONLY! I will post one for data (user) apps if needed
RESOURCES
HOW TO INSTALL SDK
-This is a great guide on how to install ADB with Android SDK. PAY SPECIAL ATTENTION TO THE PICTURES ON HOW TO SET UP CORRECT ENVIRONMENT VARIABLES, ESPECIALLY THE SDK AND JAVA FILES
DOWNLOADS AND HOW TO (OFFICIAL)
-This is the official page for SDK downloads and a "How to" on setting up requirements.. MAKE SURE YOU MEET REQUIREMENTS (JAVA, ETC)
APKTOOL
-Official page for apktool. Get the downloads
ANDROID COMMANDER
-Very useful tool! Can pull data/system apps extremely easily, run a live log, run DDMS, push/pull files with a handy GUI. One of my favorite, and most useful, apps
APK MANAGER
-This is what I use to sign apps. To make it compatible for ICS you need to replace the aapt.exe and apktool.jar (both found in APK Manage's "other folder") with the aapt.exe from latest SDK update (found in platform-tools folder) and the apktool.jar is found in your main apktool directory
DSIXDA'S KITCHEN
-Very useful. Deodex stock ROMs, unpack/repack boot.img, add different functionality to a ROM. Just tons of tools and options
**I WILL ADD MORE LINKS LATER**
cool.. thanks
JG96EVO said:
cool.. thanks
Click to expand...
Click to collapse
No problem
I'm curious to find out if it works on other ROMs/devices. If someone will check I would be grateful. If it doesn't work I will make it for that ROM/device
When flashing the zip for the on screen buttons, is therw a way to completely disable the capasitive buttons? I know we can dim them, though they come back on from time to time, but actually disable them completely?
Edit: Hmm maybe wrong thread to ask....
I just flashed the 0-100 battery mod on BM's V5 with francos latest kernel.
Annnd...it worked. Thank you
What about a center clock without battery mod?
thanks. works perfect
Thank you. I got used to conveniently let.
Sent from my Nexus S using xda premium
Smoke314 said:
When flashing the zip for the on screen buttons, is therw a way to completely disable the capasitive buttons? I know we can dim them, though they come back on from time to time, but actually disable them completely?
Edit: Hmm maybe wrong thread to ask....
Click to expand...
Click to collapse
Yes, I ported the on screen buttons mod for aosp's ROM. You can try to disbale BLN through NSTOOLS. I'll look into it more
fromthestars said:
I just flashed the 0-100 battery mod on BM's V5 with francos latest kernel.
Annnd...it worked. Thank you
Click to expand...
Click to collapse
Thank you for checking, really appreciate it!
Eclair~ said:
What about a center clock without battery mod?
Click to expand...
Click to collapse
Done, added to OP. Let me know if it works
nothing totally major , but is there a way to where you can disable the clock on the lock screen & enable it on the home screen like it dose natively on ICS?
kinda looks funny with the 2 clocks lol ..
Man, your on a role. Just flashed the center clock and batt percent mod and it worked perfect. Thanks.
Sent from my Nexus S 4G using xda premium
surveysays said:
nothing totally major , but is there a way to where you can disable the clock on the lock screen & enable it on the home screen like it dose natively on ICS?
kinda looks funny with the 2 clocks lol ..
Click to expand...
Click to collapse
I just started looking into it.. If I can figure it out I will post it up
Tiffany84 said:
Man, your on a role. Just flashed the center clock and batt percent mod and it worked perfect. Thanks.
Sent from my Nexus S 4G using xda premium
Click to expand...
Click to collapse
Thanks! I appreciate it. Next steps are icon switch, centered date when you pull down on statusbar, then lockscreen theme
I'm using the battery mod and it works great
derekwilkinson said:
I'm using the battery mod and it works great
Click to expand...
Click to collapse
Hey thanks man! Glad you guys like it.
Open to ideas.. I'd really like to see centered date with expanded statusbar, just have to get the padding right with the new buttons (settings icon and clear all button)
Sent from my Nexus S 4G using Tapatalk
Could anyone help me and tell me if I can use this on koushs CM9 alpha 11 build? Im not a 4g guy neither, thanks
Sent from my Nexus S
mike216 said:
Could anyone help me and tell me if I can use this on koushs CM9 alpha 11 build? Im not a 4g guy neither, thanks
Sent from my Nexus S
Click to expand...
Click to collapse
Can you make a backup then try it? If it doesn't work post your framework-res.apk and SystemUI.apk and I'll make it real quick
Sent from my Nexus S 4G using Tapatalk
Thanks im afraid to try but I guess I will and report back
Sent from my Nexus S
mike216 said:
Thanks im afraid to try but I guess I will and report back
Sent from my Nexus S
Click to expand...
Click to collapse
Thank God for nandroid backups lol
If it doesn't work just post your SystemUI.apk and framework-res.apk and I'll make it.. Gunna be up for a few more hours
Some of you saw/used my TNL theme: http://forum.xda-developers.com/showthread.php?t=1886892 and you probably would like to know how I did it.
Ok am gonna show you, but if you do not have basic knowledge (maybe even a bit advanced).
Requirements:
-apktool (not other apk manager!)
-cmd/terminal
-jre and jdk
-windows or linux (probably osx as well)
1. Load resources of app that you want to theme
Code:
apktool if here_comes_apk_file.apk
for me it was SystemUI.apk, then you will get:
Code:
I: Framework installed to: %userprofile%\apktool\framework\127.apk
2. What to do with 127.apk, simply add it to apktool.yml (of the theme):
Code:
usesFramework:
ids:
- 1
- 127
3. Preview of com_android_systemui.xml (as usual, but in layout files you cannot use a part of file you have to keep whole code):
Code:
<item name="layout/status_bar">@layout/status_bar</item>
<item name="layout/status_bar_expanded">@layout/status_bar_expanded</item>
<item name="layout/status_bar_expanded_header">@layout/status_bar_expanded_header</item>
4. Preview of status_bar_expanded_header.xml (you can add/remove/change everything you want as long as you put package name right after each @):
Code:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:background="@com.android.systemui:drawable/notification_header_bg" android:layout_width="fill_parent" android:layout_height="wrap_content" android:baselineAligned="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@com.android.systemui:style/TextAppearance.StatusBar.Expanded.Clock" android:id="@com.android.systemui:id/clock" android:clickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:singleLine="true" />
<com.android.systemui.statusbar.policy.DateView android:textAppearance="@com.android.systemui:style/TextAppearance.StatusBar.Expanded.Date" android:id="@com.android.systemui:id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:layout_marginRight="8.0dip" />
<LinearLayout android:id="@com.android.systemui:id/buttons_bar" android:layout_width="wrap_content" android:layout_height="wrap_content">
<com.android.systemui.statusbar.RotationToggle android:id="@com.android.systemui:id/rotation_lock_button" android:clickable="true" android:layout_width="32.0dip" android:layout_height="32.0dip" android:layout_margin="8.0dip" android:button="@com.android.systemui:drawable/ic_notify_rotation" android:contentDescription="@com.android.systemui:string/accessibility_rotation_lock_off" />
<ImageView android:id="@com.android.systemui:id/settings_button" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@com.android.systemui:drawable/ic_notify_quicksettings" android:scaleType="center" android:contentDescription="@com.android.systemui:string/accessibility_settings_button" />
</LinearLayout>
<Space android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_weight="1.0" />
<ImageView android:id="@com.android.systemui:id/clear_all_button" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@com.android.systemui:drawable/ic_notify_clear" android:scaleType="center" android:contentDescription="@com.android.systemui:string/accessibility_clear_all" />
</LinearLayout>
5. Preview of usb_storage_activity.xml (from my MIUIv4 theme) (you can add/remove/change everything you want as long as you put package name right after each @):
Code:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:gravity="center" android:id="@android:id/main" android:padding="18.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:orientation="vertical" android:layout_gravity="center" android:layout_marginTop="50.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content">
<ImageView android:id="@android:id/icon" android:layout_width="0.0dip" android:layout_height="0.0dip" android:src="@android:drawable/usb_android" android:layout_centerHorizontal="true" />
<Button android:id="@android:id/mount_button" android:layout_gravity="center" android:background="@android:drawable/usb_android" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<Button android:id="@android:id/unmount_button" android:layout_gravity="center" android:background="@android:drawable/usb_android_connected" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
<LinearLayout android:orientation="vertical" android:layout_gravity="center_vertical" android:layout_alignParentBottom="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textSize="24.0sp" android:gravity="center" android:id="@android:id/banner" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10.0dip" android:text="@android:string/usb_storage_title" android:layout_below="@android:id/icon" android:layout_centerHorizontal="true" />
<TextView android:textSize="14.0sp" android:gravity="center" android:id="@android:id/message" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10.0dip" android:text="@android:string/usb_storage_message" android:layout_below="@android:id/banner" />
</LinearLayout>
<RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="110.0dip" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true">
<ProgressBar android:id="@android:id/progress" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminate="true" style="?android:attr/progressBarStyle" />
</RelativeLayout>
</RelativeLayout>
6. Preview of styles.xml (from swype to show you how to theme such parts):
Code:
<style name="Swype.holo" parent="@com.nuance.swype.dtc:style/Swype.holo">
<item name="com.nuance.swype.dtc:candidateComponent">#ff187af4</item>
<item name="com.nuance.swype.dtc:candidateRecommended">#ff187af4</item>
<item name="com.nuance.swype.dtc:highlightedKeyTextColor">#ff187af4</item>
<item name="com.nuance.swype.dtc:componentForegroundColor">#ff187af4</item>
<item name="com.nuance.swype.dtc:convertingStringBackgroundColor">#aa187af4</item>
<item name="com.nuance.swype.dtc:smartEditorBackgroundHighlightColor">#aa187af4</item>
<item name="com.nuance.swype.dtc:smartEditorUnderlineHighlightColor">#ff187af4</item>
<item name="com.nuance.swype.dtc:verCandidateComponent">#ff187af4</item>
<item name="com.nuance.swype.dtc:verCandidateRecommended">#ff187af4</item>
<item name="com.nuance.swype.dtc:wordInlineBackgroundColor">#ff187af4</item>
</style>
8. Using this guide you will loose wallpaper and preview of you theme to get your wall back add following code to android.xml:
Code:
<item name="drawable/default_wallpaper">@drawable/homescreen</item>
There is no way to fix preview w/o editing apktool source.
ZduneX25 said:
Hi guys am going to save some money to buy and try out iToy (do not judge), so I feel it is the right moment to share with you hacks I figured out this autumn.
Some of you saw/used my TNL theme: http://forum.xda-developers.com/showthread.php?t=1886892 and you probably would like to know how I did it.
Ok am gonna show you, but if you do not have basic knowledge (maybe even a bit advanced), do not join us, cause am going to make a TeamViewer Meeting to show how to, not to learn how to theme.
Why I cannot write a regular guide, because some things are less difficult to show that to explain, feel free to join me.
Am waiting for at least 10 themers then we will talk about the show.
Click to expand...
Click to collapse
You mean, we can using custom layout on cm theme engine instead the default layout inside systemui/framewok ?
This is something I'm very interested in although I don't consider myself a 'themer' can I still join though?
Sent from my GT-I9100 using xda premium
@saldymhmd yeah
@m1keyb I would be glad to see you there
Wow sounds interesting I'm not a good themer, but I think I have some exp Can I join ?
@saldymhmd depends from you, am not choosing who deserves, it will be public, everyone is welcome
but if some of the watchers will get confused during the show there will be no time to explain, that is the only limitation
I'm in
Me too
Hello ZduneX25,
I am also interested in the layout redirection meeting. I can redirect layout files with "@+id/" but usually apps like deskclock force close with this.
Regards, D_d
*EDIT*
Can the layout redirection be applied successfully in .apks like deskclock, or only systemui & framework-res?
@DaRk_dOg you can redirect any app, but only one at the time, means one custom app layout in one theme - apktool's limitation (I believe apktool dev could work on it)
ZduneX25 said:
@DaRk_dOg you can redirect any app, but only one at the time, means one custom app layout in one theme - apktool's limitation (I believe apktool dev could work on it)
Click to expand...
Click to collapse
I build through linux with ant.
You think this raises the one at a time limitation?
Regards, D_d
Count me in if it's on weekends!
I got the layout to work on only a few apps..otherwise it crashes the app..like ADWEX I got one too work but the other won't. Also it's risky to do framework layouts because not all roms use the same layout and can cause bootloops and crashes. But for the most part it can be done!
DarkJelly Gnex on JellyBro sent this from the app.
@DaRk_dOg linux turns you off from using layout it's only for apktool (regular decompiling and compiling method)
@djdarkknight96 i think they know that, but i guess it's their decision to make
I am also in(retested)
Ops I kinda forgot this thread, how is working tomorrow or the day after tomorrow for you guys?
We will pick the time of the meeting later on.
I am also in.and i know how to theme layout as well.
ZduneX25 said:
Ops I kinda forgot this thread, how is working tomorrow or the day after tomorrow for you guys?
We will pick the time of the meeting later on.
Click to expand...
Click to collapse
Weekend is good. The best time for me is during summer/winter break because then I don't have to worry about all the things I need to do for the next day etc.
anything happened here?
I'd like to know how to theme layout too =)
Hi,
Just found this thread and tought : well i am saved...
But, i can't compile my theme back.
Apktool keeps throwing me these errors :
"Adding multiple application package resources; only one is allowed. Use -x to create extended resources".
Well i googled this error, and i can't find a single usefull thing.
If someine has a clue i would appreciate it a lot.
Thanks for the help
hello community
i would like to share something i know about how to theme for most SystemUI.apk.
What in this TUT??
PAGE #1 :
1. Theme Tools that needed.
2. STEPS for making theme.
3. HOW TO CHANGE COLOR FOR TEXT.
4. HOW TO MAKE 1% BATTERY INCREMENT.
5. HOW TO MAKE CENTER CLOCK.
6. HOW TO REARRANGE THE TOGGLE.
7. HOW TO REMOVE THE BRIGHTNESS BAR.
8. HOW TO CHANGE STATUS BAR BACKGROUND.
9. HOW TO MAKE THE BUTTON AND NOTIFICATION TRANSPARENT.
10. HOW TO MAKE TRANSPARENT BACKGROUND.
PAGE #2 :
11. HOW TO REMOVE THE TEXT AND TOGGLES STATUS.
12. HINT HOW TO EDIT IMAGE WITHOUT GETTING ERROR!
13. sample_toggles for all!
14. HOW TO CHANGE ANY PART WITH IMAGE.
15. How To Sign Your Apk After Modding!
TUT SHARED BY OTHERS :
- HOW TO MOVE TOGGLES TO BOTTOM, HOW TO MOVE BATTERY ICON TO LEFT, HOW TO ADD AM/PM AT STATUS BAR. by @SuperDroid-BOND
- HOW TO ADD SCREENSHOT BUTTON IN STATUSBAR. by @remuntada78
1. Theme Tools that needed :
Click to expand...
Click to collapse
- Apktool (download the Jar and aapt) [only for Windows] thanks to iBotPeaches for the tool.
- Android Utility [only for MAC/LINUX] thanks to tommytomatoe for the tool.
- Better Draw9Patch. (for editing .9patch png) thanks to AndroidGraphix for the tool.
- good .xml reader (i'd prefer Notepad ++).
- good image editor (i'd prefer GIMP).
- for color to html, go to this site (colorgenerator or colorhunter which is my reference for color
i dont know about Linux or Mac, so this TUT is just for Windows. But im sure the steps is just the same.
STEPS after download the tool (Apktool):
Click to expand...
Click to collapse
- extract both downloaded zip file. (the Jar and aapt)
- you'll get 3 files ( aapt.exe, apktool.bat, and apktool.jar), place it together in one folder.
- go to Home Menu, search for "cmd", copy the cmd to the apktool folder.
STEPS for installing:
1) pull your framework-res.apk (in system/framework)
2) pull SystemUI.apk (in system/app)
3) install them with the command
Code:
apktool if framework-res.apk
Code:
apktool if SystemUI.apk
this will install the framework and the systemui for the current ROM.
2. STEPS for making theme :
1) decompile SystemUI.apk with the command.
Code:
apktool d SystemUI.apk
2) then go to SystemUI/res/drawable-hdpi/ (to edit the images)
be careful of the .9.png . Use the Better Draw9Patch tool for editing .9patch pngs.
these are the list of the png and where it will display :
Click to expand...
Click to collapse
for background :
* notification_panel_bg.9 ------------------------------------------------| (status bar bg)
* tw_quick_panel_list_bg_f/n/p ----------------------------------------| (toggle bg)
* tw_quick_panel_quick_setting_button_bg_normal.9 ---------| (toggle button background)
* tw_status_bar_call_ongoing_#####.9 ----------------------------| (status bar display when call)
for icons :
* all tw_quick_panel_icon_###.png ----------------------------------| (toggle button)
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
* stat_sys_battery_# , stat_sys_battery_charge_anim## ------| (for battery display)
* tw_quickpanel_icon_#.png -------------------------------------------| (for status bar expended quicksetting)
* tw_quick_panel_plnm_setting_dv ----------------------------------| (for divider between the quicksetting and clock)
* tw_status_bar_close_on/off ------------------------------------------| ( for the status bar bottom drag)
for recent tumbnail :
* look for all recents_thumbnail_#.png ------------------------------| (for thumbnail bg)
* tw_btn_default_normal_holo_recent_button.9 ------------------| (for btn bg)
* tw_recent_panel_icon_######_holo_dark ----------------------| (for btn icon)
thats all for the important images (other images you'll know just with its look and where it belong )
3. HOW TO CHANGE TEXT COLOR.
Click to expand...
Click to collapse
res/layout :
1. tw_status bar.xml
battery text color.
Code:
<TextView android:textSize="12.0dip" android:textColor="#something"
clock text color.
Code:
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#something"
change the "something" with your preferred color.
2. tw_status_bar_expanded_header.xml
for pull down clock color.
Code:
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock" android:textColor="#something"
for date color.
Code:
"@style/TextAppearance.StatusBar.Expanded.Date" android:textColor="#something"
res/values :
1. colors.xml
for pull down Notification label color.
Code:
<color name="notification_category_color">
for clear button label text color.
Code:
<color name="tw_status_bar_clear_btn_text">
2. styles.xml
Code:
<style name="TextAppearance.StatusBar.Expanded.Clock" parent="@style/TextAppearance.StatusBar.Expanded">
<item name="android:textSize">32.0dip</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#ff33b5e5</item>
<item name="android:fontFamily">sans-serif-light</item>
Code:
<style name="TextAppearance.StatusBar.Expanded.Date" parent="@style/TextAppearance.StatusBar.Expanded">
<item name="android:textSize">12.0dip</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#FF9CE4FE</item>
<item name="android:textAllCaps">true</item>
Code:
<style name="TextAppearance.StatusBar.Expanded.Network" parent="@style/TextAppearance.StatusBar.Expanded">
<item name="android:textSize">14.0dip</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#ff33b5e5</item>
you can change the text size, color, style (bold or normal) in that xml.
4. HOW TO MAKE 1% BATTERY INCREMENT :
Click to expand...
Click to collapse
res/drawable/
- edit the stat_sys_battery.xml and stat_sys_battery_charge.xml to be like this :
Code:
<?xml version="1.0" encoding="utf-8"?>
<level-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/stat_sys_battery_0" android:maxLevel="0" />
<item android:drawable="@drawable/stat_sys_battery_1" android:maxLevel="1" />
<item android:drawable="@drawable/stat_sys_battery_2" android:maxLevel="2" />
<item android:drawable="@drawable/stat_sys_battery_3" android:maxLevel="3" />
<item android:drawable="@drawable/stat_sys_battery_4" android:maxLevel="4" />
<item android:drawable="@drawable/stat_sys_battery_5" android:maxLevel="5" />
.
.
.
.
until :
Code:
.
.
.
.
.
<item android:drawable="@drawable/stat_sys_battery_95" android:maxLevel="95" />
<item android:drawable="@drawable/stat_sys_battery_96" android:maxLevel="96" />
<item android:drawable="@drawable/stat_sys_battery_97" android:maxLevel="97" />
<item android:drawable="@drawable/stat_sys_battery_98" android:maxLevel="98" />
<item android:drawable="@drawable/stat_sys_battery_99" android:maxLevel="99" />
<item android:drawable="@drawable/stat_sys_battery_100" android:maxLevel="100" />
</level-list>
animated battery charge display :
Code:
<?xml version="1.0" encoding="utf-8"?>
<level-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:maxLevel="0">
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="1500" android:drawable="@drawable/stat_sys_battery_0" />
<item android:duration="500" android:drawable="@drawable/stat_sys_battery_charge_anim0" />
</animation-list>
</item>
<item android:maxLevel="1">
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="1500" android:drawable="@drawable/stat_sys_battery_1" />
<item android:duration="500" android:drawable="@drawable/stat_sys_battery_charge_anim1" />
</animation-list>
</item>
<item android:maxLevel="2">
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="1500" android:drawable="@drawable/stat_sys_battery_2" />
<item android:duration="500" android:drawable="@drawable/stat_sys_battery_charge_anim2" />
</animation-list>
.
.
.
.
until :
Code:
.
.
.
.
<item android:maxLevel="100">
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="1500" android:drawable="@drawable/stat_sys_battery_100" />
<item android:duration="500" android:drawable="@drawable/stat_sys_battery_charge_anim100" />
</animation-list>
</item>
<item android:maxLevel="101">
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="1000" android:drawable="@drawable/stat_sys_battery_100" />
<item android:duration="500" android:drawable="@drawable/stat_sys_battery_charge_animfull" />
</animation-list>
</item>
</level-list>
then put the battery icons in res/drawable-hdpi, recompile.
5. HOW TO MAKE CENTER CLOCK?
Click to expand...
Click to collapse
res/layout
tw_status_bar.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.phone.PhoneStatusBarView android:orientation="vertical" android:id="@id/status_bar" android:background="@drawable/status_bar_background" android:focusable="true" android:fitsSystemWindows="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui">
<ImageView android:id="@id/notification_lights_out" android:paddingLeft="6.0dip" android:paddingBottom="2.0dip" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lights_out_dot_small" android:scaleType="center" />
<LinearLayout android:orientation="horizontal" android:id="@id/icons" android:paddingLeft="6.0dip" android:paddingRight="6.0dip" android:layout_width="fill_parent" android:layout_height="fill_parent">
<LinearLayout android:orientation="horizontal" android:id="@id/left_icons" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0">
<TextView android:textSize="15.0dip" android:gravity="center_vertical" android:id="@id/carrierLabel" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
<ImageView android:id="@id/doNotDisturbIcon" android:visibility="gone" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/tw_dnd" android:alpha="0.7" android:scaleX="0.85" android:scaleY="0.85" />
<com.android.systemui.statusbar.StatusBarIconView android:id="@id/moreIcon" android:visibility="gone" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="fill_parent" android:src="@drawable/stat_notify_more" />
<com.android.systemui.statusbar.phone.IconMerger android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/notificationIcons" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentLeft="true" />
</LinearLayout>
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#ff99FF00" android:gravity="center" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
</LinearLayout>
<LinearLayout android:gravity="right|center" android:orientation="horizontal" android:id="@id/right_icons" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" android:layout_alignParentRight="true">
<LinearLayout android:gravity="right|center" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<LinearLayout android:gravity="right|center" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:paddingLeft="0.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent">
<include android:id="@id/signal_cluster" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/tw_signal_cluster_view" />
<TextView android:textSize="9.0dip" android:textColor="#ff99FF00" android:layout_gravity="center" android:id="@id/battery_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/status_bar_network_name_separator" />
<ImageView android:gravity="center" android:id="@id/battery" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" android:paddingLeft="6.0dip" android:animationCache="false" android:layout_width="fill_parent" android:layout_height="fill_parent">
<ImageSwitcher android:id="@id/tickerIcon" android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:layout_marginRight="4.0dip">
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="centerInside" />
<com.android.systemui.statusbar.AnimatedImageView android:layout_width="@dimen/status_bar_icon_size" android:layout_height="@dimen/status_bar_icon_size" android:scaleType="centerInside" />
</ImageSwitcher>
<com.android.systemui.statusbar.phone.TickerView android:id="@id/tickerText" android:paddingTop="2.0dip" android:paddingRight="10.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:id="@id/ticker_text_view_old" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.PhoneTicker" android:id="@id/ticker_text_view_new" android:layout_width="fill_parent" android:layout_height="wrap_content" android:singleLine="true" />
</com.android.systemui.statusbar.phone.TickerView>
</LinearLayout>
</com.android.systemui.statusbar.phone.PhoneStatusBarView>
edit the xml just like mine
6. HOW TO REARRANGE THE TOGGLE :
Click to expand...
Click to collapse
before:
res/values
arrays.xml
Code:
<string-array name="QuickSettingButtonAttribute">
<item>Wifi</item>
<item><string-array name="QuickSettingButtonAttribute">
<item>Wifi</item>
<item>Location</item>
<item>SilentMode</item>
<item>AutoRotate</item>
<item>Bluetooth</item>
<item>MobileData</item>
<item>DormantMode</item>
<item>PowerSaving</item>
<item>AllShareCast</item>
<item>MultiWindow</item>
<item>Sync</item>
</string-array>
just arrange what ever you want it to be with replace the arrangement of that xml.
eg. you want to make the GPS toggle to the other side :
HTML:
<string-array name="QuickSettingButtonAttribute">
<item>Wifi</item>
<item>SilentMode</item>
<item>AutoRotate</item>
<item>Bluetooth</item>
<item>MobileData</item>
<item>DormantMode</item>
<item>PowerSaving</item>
<item>AllShareCast</item>
<item>MultiWindow</item>
<item>Location</item>
<item>Sync</item>
</string-array>
after :
thats it, then recompile!
7. HOW TO REMOVE THE BRIGHTNESS BAR :
Click to expand...
Click to collapse
res/layouts
tw_status_bar_expanded.xml
find :
Code:
<LinearLayout android:orientation="vertical" android:id="@id/brightness_controller" android:background="#00000000" android:layout_width="fill_parent" android:layout_height="56.0dip">
replace the
Code:
android:layout_height="56.0dip"
with
Code:
android:layout_height="0.0dip"
recompile
8. HOW TO CHANGE STATUS BAR BACKGROUND :
Click to expand...
Click to collapse
res/drawable-hdpi
this is the easiest way.
replace the notification_panel_bg.9.png with any of your preferred image with resolution of 480x800.
but before that dont forget to make all toggle background to be transparent.well, these are several ways that you can make it done :
1) this is the step that i always use to make change the background.
- decompile the apk.
- go to the res/drawable-hdpi folder.
- find the notification_panel_bg.9.png.
- open it with any of your preferred photo editor.
- resize the image to 482x802 (so that the other 2x2 pixel will leave for .9patch).
- open the image that you want to make as background (copy it)
- paste it into the notification_panel_bg.9.png that you have resized.
- draw the whole 2x2 with black line #000000.
- save the image.
- recompile.
2) this steps is much easier, but i dont recommend. sometimes it failed.
- decompile the apk.
- recompile the apk.
- go to build/apk/res/drawable-hdpi.
- find the notification_panel_bg.9.png
- replace with your preferred image. (but dont forget to name the image with the same name include .9)
- build the apk again.
- your finished apk will be in dist folder.
3) this is the safest way i guess but always success.
- decompile the apk.
- go to res/layout folder.
- find tw_status_bar_expanded.xml
- in that xml, find android:background="@drawable/notification_panel_bg".
- change that notification_panel_bg with any name. example android:background="@drawable/mybackground".
- save the xml.
- then, go to res/drawable-hdpi folder.
- place your image named "mybackground".
- compile the apk.
9. HOW TO MAKE THE BUTTON AND NOTIFICATION TRANSPARENT :
Click to expand...
Click to collapse
res/layouts
tw_status_bar_expanded.xml
find :
all
Code:
android:background="#something"
in the xml the change the "#something" with "#00000000".
change ff value to (00 -> 100% transparency, 3f -> 75% transparency, 7f -> 50% transparency, bf -> 25% transparency)
The other value (1e1e1e) is RBG for grey color, if you want it black it will be (000000).
So:
#00000000 - black with 100% transparency
#3F000000 - black with 75% transparency
#7F000000 - black with 50% transparency
#BF000000 - black with 25% transparency
this post originally posted at http://forum.xda-developers.com/showthread.php?t=2078585 by majdinj (hit thanks to him )
Click to expand...
Click to collapse
then go to SystemUI\smali\com\android\systemui\statusbar\phone
PhoneStatusBar.smali
- find -0x100 (there will be just two of it in that smali)
- change both to 0x0 (0=zero)
- save smali.
(that will make the notification bar transparent).
10. HOW TO MAKE TRANSPARENT BACKGROUND :
Click to expand...
Click to collapse
res/layout
tw_status_bar_expanded.xml
find :
Code:
android:id="@id/notification_panel" android:background="@drawable/notification_panel_bg"
change the "@drawable/notification_panel_bg" to "#00000000" or your preferred transparent range. Then, recompile
11. HOW TO REMOVE THE TEXT AND TOGGLES STATUS :
Click to expand...
Click to collapse
res/layout
tw_quick_setting_button.xml
find :
Code:
<ImageView android:layout_gravity="center" android:id="@id/btn_image" android:layout_width="fill_parent" android:layout_height="60.0dip" android:layout_marginTop="4.0dip" />
1. change the android:layout_height="60.0dip" to android:layout_height="90.0dip".
2. change the android:layout_marginTop="4.0dip" to android:layout_marginTop="0.0dip"
then in the same xml.
find :
Code:
<TextView android:textSize="@dimen/quick_setting_button_text_size"
at the same line, you'll see android:textColor="blablabla", change it to android:textColor="#00000000".
and android:layout_height="blabla.bladip" to android:layout_height="0.0dip"
also at the same xml.
find :
Code:
<ImageView android:layout_gravity="center" android:id="@id/btn_status_image"
.
change all the padding to be like mine :
HTML:
<ImageView android:layout_gravity="center" android:id="@id/btn_status_image" android:paddingLeft="0.0dip" android:paddingTop="0.0dip" android:paddingRight="0.0dip" android:paddingBottom="0.0dip" android:layout_width="fill_parent" android:layout_height="0.0dip" android:scaleType="fitXY" android:drawable="@drawable/tw_quick_panel_off" />
all this steps will make the size of the toggle bigger, remove the toggles text, and remove the toggles status.
then go to :
res/values
dimens.xml
find :
Code:
<dimen name="quick_setting_button_
there will be 7 lines of it in that xml.
change the line to be just like mine :
HTML:
<dimen name="quick_setting_button_height">90.0dip</dimen>
<dimen name="quick_setting_button_image_height">90.0dip</dimen>
<dimen name="quick_setting_button_text_height">0.0dip</dimen>
<dimen name="quick_setting_button_text_size">0.0dip</dimen>
<dimen name="quick_setting_button_status_height">0.0dip</dimen>
<dimen name="quick_setting_button_status_padding">2.0dip</dimen>
<dimen name="quick_setting_button_margin_top">0.0dip</dimen>
next steps :
- make your own toggle images with resolution of 80x100 or 90x110 or mine is 90x150. ( just any resolution that fit your toggle when displayed).
- it doesn't matter because you already fix the dimension of the toggle display. The point of creating new big toggles is not to make the display stretched or narrowed.
final steps:
res/layout
tw_status_bar_expanded.xml
find :
Code:
<com.android.systemui.statusbar.policy.quicksetting.QuickSettingPanel android:orientation="horizontal" android:id="@id/quicksetting_container" android:layout_width="wrap_content" android:layout_height="wrap_content"
- in that line you'll see android:divider="@bla/blablabla" change it to android:divider="#00000000".
(that will remove the divider between the toggles)
then in the same xml, find :
HTML:
<HorizontalScrollView android:id="@id/quicksetting_scroller" android:scrollbars="none" android:layout_width="wrap_content"
edit the android:layout_height= to android:layout_height="90.0dip".
finish, recompile!
this is how it will look like :
12. HINT HOW TO EDIT IMAGE WITHOUT GETTING ERROR! :
Click to expand...
Click to collapse
1) ONLY EDIT the .9patch images before recompile the apk!
HOW TO EDIT IT??
- use the Better Draw9Patch to edit .9patch.
- there are many TUT for that..but i will put it in this TUT later.
- ONLY EDIT THE .9patch images in res/ (which folder it belong) before recompile!
2) EDIT NON-.9patch images after you recompile the "HOW TO EDIT IT" above.
- you can edit all of the NON-.9patch images FREELY in build/res/apk/ (which folder it belong).
- the folder you'll get after you recompile the apk.
- BUT DO NOT TOUCH ANY .9patch images in there!
13. sample toggles for ALL!! :
Click to expand...
Click to collapse
want other cool toggles???
click this link!!
sample_toggles_1 :
Click to expand...
Click to collapse
sample_toggles_2 :
Click to expand...
Click to collapse
sample_toggles_3 :
Click to expand...
Click to collapse
sample_toggles_4 :
Click to expand...
Click to collapse
sample_toggles_5 :
Click to expand...
Click to collapse
DOWNLOAD LINK:
sample_toggles_1
sample_toggles_2
sample_toggles_3
sample_toggles_4
sample_toggles_5
Click to expand...
Click to collapse
link updated : 12 MAY 2013
and here is the base for all my icons :
just put the icon inside that toggle base
download link :
base_sample_toggle_1
base_sample_toggle_2
want other cool toggles???
click this link!!
just download it and try to mod yourself with my toggles
the toggles is able to use if you use all my dimension that i have modded in the tut. (TUT #11)
dont forget to hit thanks if you using this toggles for your mod. give me credits is good enough.
14. HOW TO CHANGE ANY BACKGROUND WITH OWN IMAGE :
Click to expand...
Click to collapse
In this TUT#14, you can change any part with any image by using the .9patch. png.
its easy, you just need to change the color code in the xml for example android:background="#colorcode" to android:background="@drawable/your_image".
And then you need to create an .9.png image then put it into res/drawable-****.
the **** means what is your device dpi.
the size of the image is depend with the part that you want to change, it is your creativity.
before :
after :
Click to expand...
Click to collapse
15. How To Sign Your Apk After Modding! (IMPORTANT)
Click to expand...
Click to collapse
- recompile the apk, then the apktool will create new folder named "build".
- open the build/apk/ , copy and replace the original META-INF folder and AndroidManifest.xml into it. (for signing)
- recompile again by using command :
Code:
apktool b SystemUI
- your modded file will be in "dist" folder.
Click to expand...
Click to collapse
P.S : ALWAYS REPLACE THE ORIGINAL META-INF FOLDER AND AndroidManifest.xml from the ORIGINAL APK into the MODDED APK AFTER BUILD! or else you got bootloop.
references :
- http://forum.xda-developers.com/showthread.php?t=2078585 by majdinj.
- http://forum.xda-developers.com/showthread.php?t=1714481 by emompong.
- http://forum.xda-developers.com/showpost.php?t=35294425&postcount=172 by devabhishek.
credits to :
- Koulis2000 because teach me a lot of things especially for the xml and .9patch, thanks dude!
- bobfrantic also share what he knows to me , thanks a lot!
Click to expand...
Click to collapse
let me know if i forgot place your name as credit, im just normal human being :fingers-crossed: and sorry for that.
hit thanks to them, their post really help me a lot
there will be more TUT after this..maybe how to theme framework-res.apk
there must be something more i left, but i will put it later when i remember what it is.
if you got something more to ask, dont be shy to PM me.. i'll be happy to help..
(only if im able to!)
IF YOU HAVE SOMETHING THAT YOU KNOW FOR HOW TO MODDING SYSTEMUI.APK, AND IT IS NOT INCLUDED IN THIS TUT, PLEASE SHARE IT HERE
SO THAT MAYBE THIS TUT WILL HELP MANY PEOPLE WITH MANY VERSION OF DEVICES, I WISH THIS THREAD WILL BECOME THE PERFECT PLACE FOR PEOPLE WHO WANT TO LEARN ABOUT HOW TO THEME SYSTEMUI.APK
Nice thread, can you also add how to hide text in the toggles in the status pull down? Also here is a great little program people can use for determining color codes like #cecece to change colors. windows only though
View attachment color2html.zip
bobfrantic said:
Nice thread, can you also add how to hide text in the toggles in the status pull down? Also here is a great little program people can use for determining color codes like #cecece to change colors. windows only though
View attachment 1826979
Click to expand...
Click to collapse
i put the site i refer already
anyway, thanks..
will update the thing you said for next update..
Re: [TUT][JB] HOW TO THEME SystemUI.apk for newbie!
Nice thread that can really help out all the noobs out there. :thumbup:
Sent from my GT-I9070 using xda premium
can i use apk multi tool to do this as it gives all xml and icon files easily..??
is both same ??
thx for tutorial.
Re: [TUT][JB] HOW TO THEME SystemUI.apk for newbie!
Great tutorial, all well explained. Thanks
Sent from my GT-I9070
ravijani said:
can i use apk multi tool to do this as it gives all xml and icon files easily..??
is both same ??
thx for tutorial.
Click to expand...
Click to collapse
yes..just the same..but for apkmulti tool always set compression level to 0..(option 21).
and dont forget to replace the original META folder and AndroidManifest to the modded apk after recompile..
frzek said:
Great tutorial, all well explained. Thanks
Sent from my GT-I9070
Click to expand...
Click to collapse
hope this thread help a lot of people
Epic tut... but is apktools necessary? I use WinRAR.
R: [TUT][JB] HOW TO THEME SystemUI.apk for newbie!
panda00 said:
Epic tut... but is apktools necessary? I use WinRAR.
Click to expand...
Click to collapse
Yes for modify xml files. With winrar you can change the png only
Inviato dal mio GT-I9070 con Tapatalk 2
KINGbabasula said:
Yes for modify xml files. With winrar you can change the png only
Inviato dal mio GT-I9070 con Tapatalk 2
Click to expand...
Click to collapse
How come? If you use winrar, you can open xml files and edit them...
panda00 said:
How come? If you use winrar, you can open xml files and edit them...
Click to expand...
Click to collapse
you need to decode the xml so it can be read by any xml reader..with winrar you cant read the xml..
thats why you need the apktool to decode the xml..
Re: [TUT][JB] HOW TO THEME SystemUI.apk for newbie!
The finest work. Tnx a lot
Enviado desde mi GT-I9070 usando Tapatalk 2
Одг: [TUT][JB] HOW TO THEME SystemUI.apk for newbie!
Great tut.
Послато са GT-I9070 користећи Тапаток 2
xessus said:
The finest work. Tnx a lot
Enviado desde mi GT-I9070 usando Tapatalk 2
Click to expand...
Click to collapse
shut_down said:
Great tut.
Послато са GT-I9070 користећи Тапаток 2
Click to expand...
Click to collapse
thanks a lot for the compliment, friend
Re: [TUT][JB] HOW TO THEME SystemUI.apk for newbie!
Thanks, after my exams this week I'm definitely going to theme some!
Sent from my GT-I9070 using xda app-developers app
hey guys
why the 'command' to be like this when i recompile the SystemUI?
i just "MAKE 1% BATTERY INCREMENT" , can you tell me where is my mistake? thks before
sandrin0 said:
Thanks, after my exams this week I'm definitely going to theme some!
Sent from my GT-I9070 using xda app-developers app
Click to expand...
Click to collapse
goodluck
droid_bazzline02 said:
hey guys
why the 'command' to be like this when i recompile the SystemUI?
i just "MAKE 1% BATTERY INCREMENT" , can you tell me where is my mistake? thks before
Click to expand...
Click to collapse
that is not the problem..scroll up more, the exact problem will shown at the several lines after you hit the the build command..
my guess is you forgot to put the battery set completely in the hdpi folder..
joehanh88 said:
goodluck
that is not the problem..scroll up more, the exact problem will shown at the several lines after you hit the the build command..
my guess is you forgot to put the battery set completely in the hdpi folder..
Click to expand...
Click to collapse
I've checked it again, then after i try to recompile the SystemUI again, the dist folder was not out.
why guys?
droid_bazzline02 said:
I've checked it again, then after i try to recompile the SystemUI again, the dist folder was not out.
why guys?
Click to expand...
Click to collapse
because you got error while decompile..
Ya! I Am Back With Another Guide How To Add Custom Carrier Label Feature In Your Rom
So, You May Think Why New Guide Already We Have Many Guides On This Ya Those Guide Will Not Work Over The LP Based Rom And You May Get Smalis Error After Recompiling The Apk
What U Need To Do This
Apktools
Notepad ++
SystemUI.apk
Settings.apk
Some Working Brain
Process To Add Them
1. Download The Custom Carrier Lable.zip Which Is Attached Below To The Thread
2. Decompile The Settings.apk & SystemUI.apk
Things To Be Done In SystemUI
After Decompiling
Merge The Files Which Are Provided In Zip
After Merging
Go To res/layout/status_bar.xml
Now Add
Code:
<com.adi.rom.interface.customcarrierlabel android:textAppearance="@style/TextAppearance.StatusBar.CustomLabel" android:gravity="center|left" android:id="@id/custom_label" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
Near
Code:
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="start|center" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:paddingStart="7.0dip" />
Finally It Should Look Like
Code:
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Clock" android:gravity="start|center" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:paddingStart="7.0dip" />
[COLOR="Red"]<com.adi.rom.interface.customcarrierlabel android:textAppearance="@style/TextAppearance.StatusBar.CustomLabel" android:gravity="center|left" android:id="@id/custom_label" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />[/COLOR]
</com.android.keyguard.AlphaOptimizedLinearLayout>
</LinearLayout>
Now Move To res/values/styles.xml
Add Below Styles At Last
Code:
<style name="TextAppearance.StatusBar.CustomLabel" parent="@*android:style/TextAppearance.StatusBar.Icon">
<item name="android:textSize">13.0dip</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">@*android:color/holo_blue_light</item>
</style>
Now Recompile The Apk And Again Decompile It
And Move To res/values/public.xml
Find Line
Code:
[COLOR="Red"]<public type="id" name="custom_label"[/COLOR] id="??????????" />"
Now Copy The ??????????(Value eg: <public type="id" name="custom_label" id="0x7f0e018f" />)
Move To smali/com/adi/rom/interface/customcarrierlabel
Find For 0x7f0e018f And Replace It By U R value Which U Got In res/values/public.xml <public type="id" name="custom_label" id="??????????"
Part Of SystemUI As Done Recompile It And U R Done
But Wait V Left One More Settings.apk
Things To Be Done In Settings
After Decompiling
Move To res/xml/display_settings.xml (Here V R Adding It Under The display_settings U Add Wherever You Want)
Add Below Line In It
Code:
<PreferenceScreen android:title="Show carrier label">
<intent android:targetPackage="com.fiqih.anaknya.mbol" android:action="android.intent.action.MAIN" android:targetClass="com.fiqih.anaknya.mbol.MyActivity" />
</PreferenceScreen>
Therefore It May Look Like
Code:
<PreferenceScreen android:title="@string/gsensor_title" android:key="gsensor">
<intent android:targetPackage="com.android.settings" android:action="android.intent.action.MAIN" android:targetClass="com.bird.settings.GSensorCalibrationActivity" />
</PreferenceScreen>
<CheckBoxPreference android:title="@string/bird_small_screen" android:key="smallscreen_on" android:defaultValue="true" />
[COLOR="Red"]<PreferenceScreen android:title="Show carrier label">
<intent android:targetPackage="com.fiqih.anaknya.mbol" android:action="android.intent.action.MAIN" android:targetClass="com.fiqih.anaknya.mbol.MyActivity" />
</PreferenceScreen>[/COLOR]
</PreferenceScreen>
Ya Done Recompile It
Now Push SystemUI.apk ,Settings.apk & StatusbarLabel.apk To Your Rom
Credits:
All Credits Goes To Mediatek Android Art and Dev Reborn Group (Where I Got Smails )
I Just Made Smali To Suport Which Apktool 2.0.2 & Made Guide For Lp Base
Hit Thanks If Guide Is Use full For You
YO! Awesome
Nice work bro! Hoping to see more You should really apply for recognized contributor now :v
Nice work :good:
thx,
I try it on an very old ICS phone, it working fine xD