[Mod][Source]Do it yourself - SystemUI - Quicksetting - Background

  • 1.865 Antworten
  • Neuester Beitrag
Diskutiere [Mod][Source]Do it yourself - SystemUI - Quicksetting - Background im Themes für Samsung Galaxy S3 im Bereich Root / Custom-ROMs / Modding für Samsung Galaxy S3.
orangerot.

orangerot.

Experte
[Selbstgemacht]

[Wie man decompiliert]
-> Easy-Going-Guide

-> aktualisiertes apktool 1.5.2

Transparenz in den Settings und allen anderen TW/Holo Apps:
Mit diesem Mod könnt ihr den Hintergrund in allen Touchwiz-Apps, sowie Apps welche das Holo-Design nutzen transparent machen. Das heißt anstatt des normalen langweiligen Hintergrundes bekommt ihr in diesen Apps euer Homescreen-Wallpaper als Hintergrund.

Dafür sind 2 Schritte erforderlich:

Schritt 1:
Zunächst einmal muss man in der framework-res.apk die styles.xml bearbeiten(zu finden in framework-res.apk/res/values), damit der Hintergrund überall angezeigt wird. Die roten Einträge müssen neu dazu geschrieben werden, die schwarzen sind bereits vorhanden! Die true/false Werte müssen genau so sein, wie unten beschrieben! Das heißt am besten mit Notepad ++ nach "windowShowWallpaper" suchen, und alle Werte den unten stehenden angleichen!

(44) <style name="Theme">
(163) <item name="windowShowWallpaper">false</item>

(882) <style name="Theme.Wallpaper" parent="@style/Theme">
(884) <item name="windowShowWallpaper">true</item>

(932) <style name="Theme.Holo" parent="@style/Theme">
(1050) <item name="windowShowWallpaper">true</item>

(1180) <style name="Theme.Holo.Light" parent="@style/Theme.Light">
(1298) <item name="windowShowWallpaper">false</item>

(1420) <style name="Theme.Holo.Dialog" parent="@style/Theme.Holo">
(1430) <item name="windowShowWallpaper">false</item>


(1509) <style name="Theme.Holo.Wallpaper" parent="@style/Theme.Holo">
(1511) <item name="windowShowWallpaper">true</item>

(1517) <style name="Theme.Holo.InputMethod" parent="@style/Theme.Holo.Light.Panel">
(1522) <item name="windowShowWallpaper">false</item>


(2563) <style name="Theme.DeviceDefault.Dialog" parent="@style/Theme.DeviceDefault">
(2574) <item name="windowShowWallpaper">false</item>


(2662) <style name="Theme.DeviceDefault.Wallpaper" parent="@style/Theme.DeviceDefault">
(2664) <item name="windowShowWallpaper">true</item>

(2670) <style name="Theme.DeviceDefault.InputMethod" parent="@style/Theme.DeviceDefault">
(2682) <item name="windowShowWallpaper">false</item>

Schritt 2:
Nun weiß das System wann/wo es unser Bild anzeigen soll. Da der Standardhintergrund momentan aber schwarz ist, sieht man das gewünschteHintergrundbild noch nicht. Damit man es sieht, muss man in der framework-res.apk/res/drawable-nodpi noch alle "xx_background" pngs transparent machen.(Sind 3 Stück, 2 für das Holo Design, 1 für TW)

Tipp:
Ich würde empfehlen, die backgrounds nicht komplett transparent zu machen, da man die Schrift bei hellen Hintergründen nicht mehr richtig lesen kann.. Ich habe sie zu 50% transparent, da sieht man den Hintergrund noch sehr deutlich, kann die Schriften aber noch gut lesen. Das ist allerdings Geschmackssache. Mit der Transparenz kann man ja rumprobieren, bis es einem persönlich gefällt!

PullDown Drawer bearbeiten:


Der Hintergrund des ganzen Pulldown-Menüs:
SystemUI.apk/res/drawable-xhdpi/notification_panel_bg.9.png

Toggles transparent machen:
-In der SystemUi nach /res/drawable-xhdpi navigieren. Dort findet ihr dann zwei Bilder die wichtig sind. Das erste ist tw_black.png(Das ist die Trennlinie zwischen den Toggles) und das zweite wäre tw_quick_panel_quick_setting_button_bg_normal.9.png, welches für den eigentlichen Hintergrund zuständig ist(Achtung! Das ist eine 9.png Datei! Hier darf der schwarze Rand nicht angerührt werden und es muss nach dem Bearbeiten compiliert werden!)

BrightnessSlider Hintergrund transparent machen:
Um den Hintergrund des "BrightnessSliders" nun noch transparent zu machen in der SystemUi/res/layout die tw_status_bar_expanded.xml öffnen. Dort findet ihr den Eintrag:
PHP:
<LinearLayout android:orientation="vertical" android:id="@id/brightness_controller" 
android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="56.0dip" android:layout_marginTop="@dimen/notification_panel_quicksettingbtn_height">
In dieser Zeile ändert ihr nun bei android:background="#ff000000" den HexCode zu #00000000.

Die apk nun compilieren, flashen und das war's. Das Pulldown Menü ist nun komplett transparent.

Sollen nun auch die Benachrichtigungen transparent werden, dann müsst ihr wie hier beschrieben die smali Dateien editieren. Nach dem das getan ist kann in der framework-res/res/values/drawables der HexCode unter folgendem Eintrag nach belieben verändert werden:
PHP:
<item type="drawable" name="notification_item_background_color"
Wenn ihr lediglich die Farbe ändern wollt(und keine Transparenz hinzufügen möchtet) reicht es den Eintrag in der drawable.xml zu verändern(also nicht mit smalis rumschlagen ;))

Tipp: Wenn ihr noch die Farbe der Benachrichtigung ändern wollt, wenn man auf diese drückt(standardmäßig blau) könnt ihr noch den HexCode bei folgendem Eintrag anpassen:
PHP:
<item type="drawable" name="notification_item_background_color_pressed">


[Notification Background]
ICS NEW
SystemUI.apk/res/layout/tw_status_bar_tracking.xml
PHP:
<FrameLayout android:background="#CC000000" ... />
change to
PHP:
<FrameLayout android:background="@drawable/status_bar_expand_default" ... />
copy/overwrite your favorite image to res/drawable_xhdpi

Screenshot and compiled example

[Center Clock] UPDATE

update:
- removed Ticker Background (just a early workaround)
- added clock background
- added wrap_content-container
SystemUI.apk/res/Layout/tw_status_bar.xml
1.Block komplett entfernen
PHP:
<com.android.systemui.statusbar.policy.Clock .../>
2.folgenden Block
PHP:
<LinearLayout android:gravity="center" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent">
    <LinearLayout android:gravity="center" android:orientation="horizontal" android:layout_width="wrap_content" 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" android:background="#FF000000" />
    </LinearLayout>
    </LinearLayout>
vor der letzten Zeile
PHP:
</com.android.systemui.statusbar.phone.PhoneStatusBarView>
einfügen. Fertig!

[Bug]
-wenn Notification breiter als 50% Screenbreite, taucht sie rechts neben der Uhr auf.
-werde an einem Fix zur maximalen Breitenbeschränkung arbeiten


[Fix]
PHP:
<LinearLayout android:orientation="horizontal" android:id="@id/ticker" ...>
ändere: android:layout_width="fill_parent" zu android:layout_width="30mm"

Hinweis: Der Textinhalt der Notification bleibt natürlich erhalten, da er aber länger als oben festgelegter Container ist, scrollt die Notification auf 2 Zeilen, um kompletten Inhalt darzustellen. Abhilfe schafft ein singleLine-tag oder die Veränderung der Strings. Beides halte ich für Sinnlos.



[OnScreenButtons - AOSP only]
framework-res.apk/res/value/bools.xml
PHP:
<bool name="config_showNavigationBar">true</bool>
Wert ändern von "false" zu "true"
-Icons liegen im drawable-xhdpi Ordner (oder DL hier)

-Höhe der Leiste
framework-res.apk/res/value/dimens.xml
PHP:
<dimen name="navigation_bar_height">48.0dip</dimen>
Wert ändern nach belieben (48dip default)

[Disabled/hidden Quicksettings]
SystemUI.apk/res/layout/tw_status_bar_expanded.xml
(im Anhang fertig compiled zum direkten Austausch)
PHP:
<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"
android:divider="@drawable/tw_black_bg"
android:showDividers="middle" />
</HorizontalScrollView>
layout_height ändern in"0.1dip"

[Reihenfolge der Quicksettings]
SystemUI.apk/res/values/arrays.xml
PHP:
<string-array name="QuickSettingButtonAttribute">
        <item>Wifi</item>
        <item>Location</item>
        <item>SilentMode</item>
        <item>AutoRotate</item>
        <item>PowerSaving</item>
        <item>DoNotDisturb</item>
        <item>MobileData</item>
        <item>Bluetooth</item>
        <item>DrivingMode</item>
        <item>Sync</item>
    </string-array>
Einfach die Reihenfolge ändern, oder nur 5 Items darstellen

[QuickSettings unter Betreiber und Datum anordnen]
SystemUI.apk/res/layout/tw_status_bar_expanded.xml

Einfach beide Container (Relative Layout und HorizontalView) tauschen :)
(Screenshot 03)


[transparenter Hintergrund]
SystemUI.apk/res/layout/tw_status_bar_tracking.xml
(im Anhang fertig compiled zum direkten Austausch)
PHP:
<FrameLayout android:background="#FF000000"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1.0" />
android.background ändern in "#CC000000" (Alpha-R-G-B)
[Notificationeinträge Hintergrund]
bei oben genanntem Mod ändert sich auch der hintergrund von Einträgen in dem Notificationbereich (siehe Screenshot ganz unten)
Sollen diese items aber nicht voll transparent werden, muss folgendes geändert werden:
SystemUI.apk/res/values/drawables.xml
PHP:
<item type="drawable" name="tw_notification_background_null">#330099ff</item>
Standard=00000000 = 0% / keine Sichtbarkeit
CM9-Style = 330099FF = leicht schimmerndes Blau
(siehe Screenshot 02)
-> Compile-TIP: Nach dem Compilen ist der Ordner "value" nicht in SystemUI.apk/res/value zu finden, sondern in ressource.arsc (container für die ganzen valuesachen)

[Screenshot]

-siehe unten

[Austauschen]
-im Anhang findet ihr die 2 xml's (compiled) zum direkten austauschen in der SystemUI.apk
-Dateien umbennen von *.txt zu *.xml (Forum erlaubt kein xml-upload)

[Baseband]
-getestet auf LE8/9/D

Ich wünsche dir auch viel Erfolg und viel Spaß mit deinem HTC :)

Gesendet von meinem GT-I9300 mit der Android-Hilfe.de App
 

Anhänge

Zuletzt bearbeitet:
jackmu95

jackmu95

Stammgast
das "CC" steht ja für den Alpha Wert, aber wie viel Prozent Transparenz entspricht das denn und wie kann ich andere Werte benutzen?
 
K

Kiray1982

Lexikon
die Skala je Bereich geht von 00 bis FF (also 16 Stufen)
(16 Stufen bei identischen Doppelwerten, 256 bei ansteigender 2ter Stelle, F0, F1, F2, FC, FD...)
Code:
       00   0%
       11   12,5%
       22   18,75%
       33   25%
       44   31,25%
       55   37,5%
       66   43,75%  
       77   50%
       88   56,25%
       99   62,5%
       AA   68,75%
       BB   75%
       CC   81,25%
       DD   87,5%
       EE   93,75%
       FF   100%
hoffe dies ist verständlich. Je intensiver ein Wert, desto intensiver der kanal
Bsp. FFFF0000 = Volles Rot
7700FF00 = 50% Grün

Du kannst demnach die Werte beliebig ändern^^ Ich nutz oft Photoshop zum themen, da wird auch der Hexwert angegeben, den Alpha/Transwert pass ich selbst an.
 
Zuletzt bearbeitet:
jackmu95

jackmu95

Stammgast
Kiray1982 schrieb:
die Skala je Bereich geht von 00 bis FF (also 16 Stufen)
(16 Stufen bei identischen Doppelwerten, 256 bei ansteigender 2ter Stelle, F0, F1, F2, FC, FD...)
Code:
       00   0%
       11   12,5%
       22   18,75%
       33   25%
       44   31,25%
       55   37,5%
       66   43,75%  
       77   50%
       88   56,25%
       99   62,5%
       AA   68,75%
       BB   75%
       CC   81,25%
       DD   87,5%
       EE   93,75%
       FF   100%
hoffe dies ist verständlich. Je intensiver ein Wert, desto intensiver der kanal
Bsp. FFFF0000 = Volles Rot
7700FF00 = 50% Grün

Du kannst demnach die Werte beliebig ändern^^ Ich nutz oft Photoshop zum themen, da wird auch der Hexwert angegeben, den Alpha/Transwert pass ich selbst an.
Ich verwende ja auch Photoshop, nur mit Alpha Werten habe ich bisher noch nichts zu tun gehabt :D Vielen Dank!
 
K

Kiray1982

Lexikon
Kein problem, schön wenn das eine oder andere hilft :)
 
jackmu95

jackmu95

Stammgast
Ja, hat mir für mein Theme sehr weitergeholfen :)
 
K

Kiray1982

Lexikon
Dann hilft dir auch der background für die ereignisse^^ siehe screenshot 02 :)
sieht sonst doof aus, wenn hintergrund des ganzen bereich inkl. ereignisse gleiche farbe / transparenz hat
 
jackmu95

jackmu95

Stammgast
Hast du schon einen Weg gefunden das Battery Full Icon zu entfernen oder zu deaktivieren?
Hab mal so etwas rumgesucht, aber noch keine wirkliche Möglichkeit gefunden...
 
K

Kiray1982

Lexikon
Ja, in irgendeiner xml konnte man die position bzw die dimension ändern, muss ich morgen mal daheim gucken

Gesendet von meinem GT-I9300 mit Tapatalk 2
 
jackmu95

jackmu95

Stammgast
Dann guck ich noch mal genauer, sag dir bescheid wenn ich was gefunden habe.
Aber erst mal ist der 4-Way-Reboot Mod dran ;)
 
G

gnOrfi

Gast
*hüstel*
Gibts auch ne kurze Anleitung _wie_ ich das machen kann..? :\
 
K

Kiray1982

Lexikon
Nein, das is hier schon extrem kurz gehalten.
Wenn das schon zu viel ist, Finger weg.
 
jackmu95

jackmu95

Stammgast
Ich hab jetzt endlich herausgefunden wie man die 5-Balken-Signalanzeige aktivieren kann, aber das Battery Full Icon konnte ich immer noch nicht deaktivieren.

Und mit dem 4-Way-Reboot Mod hänge ich gerade auch fest...
 
Sakaschi

Sakaschi

Guru
Habt ihr odexed files decompiled? Das geht auch bei mir. Nur kann ich keine deodexed Files Decompilen sehr schade. Hat wer von euch Ne Lösung? xD

Gesendet von meinem GT-I9300 mit Tapatalk 2
 
K

Kiray1982

Lexikon
*.dex aus der apk entfernen und separat decompilen

je 2 arbeitsschritte:
1a apk (ohne dex) decompilen
1b entfernte dex decompilen

Änderungen vornehmen

2a apk compilen
2b dex compilen

3 beides zusammenführen

bis angepasste apkmanager verfügbar sind, ist das der einzige workaround der bei mir momentan klappt.
 
K

Kiray1982

Lexikon
update:
[QuickSettings unter Betreiber und Datum anordnen]

danke an sakaschi für den gedankenschub :)
 

Anhänge

Zuletzt bearbeitet:
Sakaschi

Sakaschi

Guru
hier ne abgeänderte variante:

dazu habe ich den Betreiber Branding entfernt (O2, Eplus usw.)
Und das datum nach links geschoben.

Im Anhang ist schon eine fertig compilierte .xml

Code:
    <RelativeLayout android:background="@drawable/tw_quick_panel_plnm_bg" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_plmn_height">
        <ImageView android:id="@id/settings_launch_button" android:background="@drawable/tw_quickpanel_icon_settings_bg" android:focusable="true" android:layout_width="@dimen/status_bar_expanded_setting_width" android:layout_height="fill_parent" android:src="@drawable/tw_quickpanel_icon_settings" android:scaleType="center" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:contentDescription="@string/accessibility_settings_button" />
        <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/tw_quick_panel_plnm_setting_dv" android:layout_toLeftOf="@id/settings_launch_button" android:layout_centerVertical="true" />
        <com.android.systemui.statusbar.policy.DateView android:textSize="@dimen/status_bar_expanded_date_text_size" android:textColor="#ffffffff" android:id="@id/date" android:paddingLeft="11.0dip" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@id/date" android:layout_alignParentLeft="true" android:layout_centerVertical="true" />
    </RelativeLayout>
einfach diese zeilen von "<RelativeLayout" bis "</RelativeLayout>" durch meine ersetzten. zu finden in der tw_status_bar_expanded.xml.



Screen:


Download:
http://sakaschi.bplaced.com/SGS3/SystemUI/res/layout/tw_status_bar_expanded.xml
 
K

Kiray1982

Lexikon
Gute Idee, so läuft es gerade bei mir, nur statt stock-quicksetting mit widgetsoid, da mehr ID's bzw togglemöglichkeiten (NFC, Torch etc)

Edit: zu erwähnen das du den "relative layout"-Container gewechselt hast mit dem "horizontalView"
 
Sakaschi

Sakaschi

Guru
Jop sonst hat er es nicht nach links geschoben.

Gesendet von meinem GT-I9300 mit Tapatalk 2
 
K

Kiray1982

Lexikon
jo, schaut auch ganz gut aus so!
hatte schonmal die quicksettings schmaler in höhe gemacht, kleinere schrift, like cm9 style, dann hats mir den decompilten ordner zerschossen :(