[Android Themes] AndroidGraphix:
I was having a very difficult finding any information on how to modify the font color in the status bar so I decided it would be best to document it...here on xda.

What's covered in this thread:

How to edit the font color on the status bar.

How to make the status bar transparent

Credit:

Gruesomewolf For giving me the initial instructions on how to make background and status bar transparent.

JsChiSurf For guiding me through what I was doing wrong in order to make the status bar transparent.

xml items to modify the font in the status bar

Located in SystemUI.apk

layout>status_bar_expanded.xml

*This changes the Gingeritis 3D BETA VII font color and font size (Or Sprint if EVO)

<TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:textSize="21.0px" android:textColor="#ff58aad0"

For EVO/EVO 3D the line code is:

<com.htc.widget.HtcBlinkingTextView android:textAppearance="?android:textAppearanceLarge" android:textSize="@dimen/status_bar_title_font_size" android:textColor="#ff58AAD0"

For the EVO/EVO 3D Clear button:

<TextView android:textSize="@dimen/clear_button_font_size" android:textColor="#ff58aad0"

layout>quick_settings.xml

*To change the color of the quick setting font color in the status bar

<TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:textSize="21.0px" android:textColor="#ff58aad0"

values>Drawables

*To change the color of the Status bar Nofication Font

item type="drawable" name="APKTOOL_DUMMY_015c">false</item>

<item type="drawable" name="shade_bgcolor">#ff282828</item>

<item type="drawable" name="notification_header_text_color">#ff58aad0</item> <<<<----This changes the Text, "Notification seen in the top of the status bar while under Notifications

<item type="drawable" name="notification_number_text_color">#ff000000</item> <<Change back to white

<item type="drawable" name="list_item_background">#ffffffff</item>

<item type="drawable" name="list_item_background_gray">#fff2f2f2</item>

values>Colors

*Changes the primary and secondary status bar font color

<color name="white">#ff58aad0</color> <<<<<----This changes what the font color is when pressed on the status bar

<color name="black">#ff000000</color>

<color name="half_white">#7fffffff</color>

<color name="half_black">#7f000000</color>

<color name="primary_text_color">#ffffffff</color> <<<<---Primary Font Color

<color name="secondary_text_color">#ff000000</color> <<<<----Secondary Font Color

values>styles

*Changes the status bar font from bold to normal (What says Ginergitis 3D V1.0/Sprint) If you don't want it bold. It looks better bolded

*It also changes the bold appearance of the secondary font. They both look better bolded

<style name="TextAppearance.StatusBar.Title" parent="@android:style/TextAppearance.StatusBar">

<item name="android:textAppearance">?android:textAppearanceSmall</item>

<item name="android:textSize">15.0sp</item>

<item name="android:textStyle">bold</item> <<<<-----change to normal for none bold font

<item name="android:textColor">@drawable/notification_header_text_color</item>

End Result of changing colors

As I learn more about the status bar, I'll be updating this thread.

How to make the status bar transparent

Decompile the SystemUI.apk, the smali edits to enable transparency are as fallows

Open up "StatusBarService.smali", located in /smali/com/android/systemui/statusbar/"

Look for this line:

.line 504 .local v7, view:Lcom/android/systemui/statusbar/StatusBarView;

Directly below that are these lines:

const/4 v1, 0x2
iput v1, p0, Lcom/android/systemui/statusbar/StatusBarService;->mPixelFormat:I
.line 506

Delete those lines

Several lines below that you should find this line:

iget v5, p0, Lcom/android/systemui/statusbar/StatusBarService;->mPixelFormat:I

Change that to this

const/4 v5, -0x3

Next find this line:

.line 1731
const/4 v5, 0x2

Change it to: (note this line should be under .method onBarViewAttached()V)

.line 1731
const/4 v5, -0x3

Smali editing is complete!

Then we have to do some xml editing!

Look for "status_bar_tracking.xml", found in /res/layout <<<<Should be status_bar_expanded.xml

Line:

<View android:id="@id/background" android:background="@drawable/list_item_background"

change to:

<View android:background="@drawable/status_bar_background"

After find this line:

<View android:id="@id/tab_header" android:background="@drawable/list_item_background"

and again change to this

<View android:background="@drawable/status_bar_background"

Done!! Recompile .apk

Im sure by now you can see that we will now be able to simply make the .png named status_bar_backround transparent and thats that! Hope this helps!

EDIT:

status_bar_expanded.xml is what you need to edit. BTW, you do not reference the .9 when referencing .pngs. The system handles this automatically.

The background is hard coded in status_bar_expanded, and you have to re-arrange things.

list_item_background

is what controls the default background / color for the notifications. It is fixed to a color. You can change the color, or even change it to point to an image if you want, such as the image you are attempting to modify, or assign it a full transparency if you don't want an image in the background, but rather, just for it to be clear, "#00000000".

Change the Quick Settings status bar to Transparent

Open up quick_setttings.xml found in res/layout/

Look for this line:

<LinearLayout android:orientation="vertical" android:background="@drawable/list_item_background" android:layout_width="fill_parent" android:layout_height="wrap_content">

Change "list_item_background to status_bar_background

It should look like this:

<LinearLayout android:orientation="vertical" android:background="@drawable/status_bar_background" android:layout_width="fill_parent" android:layout_height="wrap_content">

FAQ

Q:I placed @drawable/status_bar_background to anyplace it said @drawable/list_item_background.

However, my transparent png is located in SystemUI.apk/drawable-hdpi. Will the system still find it even though the code says, "drawable?"

A: Your close. It all depends on how your XML is laid out as it relates to parents / children, and their respective backgrounds, etc. It seems you should get want you want.

in terms of hdpi folders, etc, this too is automatically chosen by the phone, based on its resolution, etc, and you always reference simply as 'drawable' in your XML.

Q:Also, my png is named: status_bar_item_background_normal.9.png. Which is different from "status_bar_background." Will the system know what png I'm wanting to use even though it's not named the same?

A: status_bar_background is typically just the curtain, again, based on how your XML is laid out, meaning the background beneath the notifications but above the "drag bar".

Disclaimer:

If you have a customized .9 png (be careful, you must use care when editing .9 pngs as they have meta information on how they can be stretched), you can change the background to point to the exact name (less the .9.png extension, instead of status_bar_background) and see what happens.

You may also want to consider decompiling some of the SystemUI.apk files I recently posted, as I had to re-arrange some of the background settings to get things to show how I wanted, and it may help you see what I did as an example.

How to Remap the clear button:

Note: The below picture represents the clear button remap before liamstears edited it. With the below code, the clear button will be fixed and the blank status bar should no longer appear.

Credit:liamstears

Found in:res/layout/status_bar_expanded.xml

<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.ExpandedView android:orientation="horizontal" android:focusable="true" android:descendantFocusability="afterDescendants"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:background="@drawable/status_bar_header_background" android:paddingRight="@dimen/clear_button_padding_right" android:layout_width="fill_parent" android:layout_height="wrap_content">
<com.android.systemui.statusbar.CarrierLabel android:gravity="center_vertical" android:layout_gravity="center_vertical" android:orientation="vertical" android:id="@id/carrierLabel" android:paddingLeft="5.0dip" android:paddingTop="1.0dip" android:paddingBottom="1.0dip" android:layout_width="0.0dip" android:layout_height="wrap_content" android:layout_weight="1.0">
<com.htc.widget.HtcBlinkingTextView android:textAppearance="?android:textAppearanceLarge" android:textSize="@dimen/status_bar_title_font_size" android:textColor="#ffffffff" android:layout_gravity="center_vertical" android:id="@id/plmnLabel" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
<TextView android:textAppearance="?android:textAppearanceLarge" android:textSize="@dimen/status_bar_title_font_size" android:textColor="#ffffffff" android:layout_gravity="center_vertical" android:id="@id/spnLabel" android:paddingLeft="4.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" />
</com.android.systemui.statusbar.CarrierLabel>
</LinearLayout>
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0">
<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent" android:overScrollMode="ifContentScrolls">
<com.android.systemui.statusbar.NotificationLinearLayout android:orientation="vertical" android:id="@id/notificationLinearLayout" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:id="@id/noNotificationsTitle" android:background="@drawable/title_bar_portrait" android:paddingLeft="14.0px" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_no_notifications_title" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:id="@id/ongoingTitle" android:background="@drawable/title_bar_portrait" android:paddingLeft="14.0px" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_ongoing_events_title" />
<LinearLayout android:orientation="vertical" android:id="@id/ongoingItems" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawable="@drawable/list_item_background" />
<TextView android:textAppearance="@style/TextAppearance.StatusBar.Title" android:id="@id/latestTitle" android:background="@drawable/title_bar_portrait" android:paddingLeft="14.0px" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/status_bar_latest_events_title" />
<LinearLayout android:orientation="vertical" android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" android:drawable="@drawable/list_item_background" />
<TextView android:textSize="@dimen/clear_button_font_size" android:textColor="#ffffffff" android:layout_gravity="center" android:id="@id/clear_all_button" android:background="@drawable/btn_default_small" android:layout_width="fill_parent" android:layout_height="40.0dip" android:text="@string/status_bar_clear_all_button" style="?android:buttonStyle" />
</com.android.systemui.statusbar.NotificationLinearLayout>
</ScrollView>
<ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" android:src="@drawable/title_bar_shadow" android:scaleType="fitXY" />
</FrameLayout>
</LinearLayout>
<ImageView android:id="@id/tab_divider" android:layout_width="2.0px" android:layout_height="fill_parent" android:src="@drawable/notification_separator" android:scaleType="fitXY" />
</com.android.systemui.statusbar.ExpandedView>

The main line that makes this work is as follows:

<TextView android:textSize="@dimen/clear_button_font_size" android:textColor="#ffffffff" android:layout_gravity="center" android:id="@id/clear_all_button" android:background="@drawable/btn_default_small" android:layout_width="fill_parent" android:layout_height="40.0dip" android:text="@string/status_bar_clear_all_button" style="?android:buttonStyle" />