Hokay, I'll explain the way I make the edits.
I use APKTool to manage decompiling and rebuilding the apk, simply because I like it. I'm also on Linux and apkmanager doesn't work too well.
So I have apktool in my path, so I can be anywhere on my system and use it.
Copy the SystemUI.apk there, then
apktool d SystemUI.apk
APK Tool does its thing, then I go to the status_bar.xml and open it up in gedit.
Centre the clock
For the clock you need to find this line:
So CTRL+F, search for "clock" then select the whole line. Your text editor might break it into 2 lines, make sure you get the whole XML tag (between ").
Delete that, then copy this line to your clipboard:
<LinearLayout android:gravity="center" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.systemui.statusbar.Clock android:textAppearance="@android:style/TextAppearance.StatusBar.Icon" android:textSize="15.0sp" android:typeface="normal" android:textStyle="bold" android:textColor="#ff000000" 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" />
If you're using an HDPI phone change this bit
and if you're using an LDPI phone change it to
If you're as cool as me, you'll have an MDPI phone, so you can leave it as it is.
So, line copied to clipboard you need to past it to just BELOW this line:
Clock = centred.
Centre the date
Find this line (it's right at the bottom):
Now, for this MOD I won't give you a premade version, but I'll tell you what to change (that way we learn
To centre the clock you need to change the android:gravity property. At the moment it's set to "left|center". All you need to do is change it to "center". If you have a semi transparent status bar and you want to avoid it looking ugly you may also want to extend the date's background across the whole status bar. To do that you need to change the "android:layout_width" property. Instead of "wrap_content" it should say "fill_parent"
Date = centred
Flip the status bar icons around
Ok, so this one is a little weird. You need to change the alignment, the gravity and the order of 2 elements. Each XML tag has an ID, which we'll use to identify the bits we need to move. The ID can be found next to the property "android:id". The battery, signal and 3G icons are part of
So find the tag with that in it (CTRL+F is your friend) then select the whole tag. It's between the bit that says "" The whole thing will look something like this:
You need to cut it out (CTRL+X), and move it to just BELOW the LinearLayout with the ID
So once moved, we need to change the alignment and the gravity. Near the end of the line you just moved it has this property:
You need to change it to
You also need to change the android:gravity to
Part one sorted.
To move the notifications over to the right you need to do this:
In the tag ID'd
you need to change the alignment to right (alignParentLeft to alignParentRight) and change the gravity to "right"
Rebuilding the apk
Go back to your command line and issue this:
In the folder you decompiled in you will see a folder named SystemUI. Once you rebuild your apk using apktool you'll notice that 2 new folders are in that folder (the SystemUI one): build and dist. Go into the build folder, then apk --> res --> layout. Also, make a backup of your original SystemUI.apk, then open the original using 7zip, winrar or the archive manager on linux. DO NOT EXTRACT THE ARCHIVE, JUST OPEN IT! Now, within the archive, navigate to res --> layout. Go back to the folder you just opened, and drag the status_bar.xml found there into the archive window, overwriting the status_bar.xml already there. Close everything, then push the now modified SystemUI.apk to your phone using ADB and reboot. Job done!
I may edit this post after I publish it, to fix typos and the like.
Hope this helps y'all!
I might also add that, as an Englishman, spelling "centre" as "center" is a nightmare. Oh so often my compile fails because I spelt centre correctly.