CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: 9mm con ben 3 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 8 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 29 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 1 su 1
Discussione:

[GUIDA MOD][JB] Status Bar e Navigation Bar trasparenti

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Senior Droid


    Registrato dal
    Jan 2013
    Messaggi
    523
    Smartphone
    Sony Xperia T

    Ringraziamenti
    21
    Ringraziato 68 volte in 59 Posts
    Predefinito

    [GUIDA MOD][JB] Status Bar e Navigation Bar trasparenti

    Oggi, vi spiegherò, o meglio tradurrò questa guida ([HOW-TO][MOD][JB] Transparent Statusbar & | Xperia T, TL > XDA), con alcune migliorie (testate personalmente sul mio cellulare), una guida per rendere status bar e navigation bar trasparenti (per chi non lo sapesse, la status bar è la barra delle notifiche, mentre la navigation bar è quella in cui risiedono i tasti back, home e applicazioni recenti) o per chi vuole penso che funzioni anche per cambiare il colore.

    Preciso che non mi assumo nessuna responsabilità a eventuali vostri errori.

    Alcuni screenshots presi dal topic
    Spoiler:


    REQUISITI
    • BACKUP!!! fate un backup con cwm prima di fare le modifiche, al limite, se non volete o non potete, fate un backup almeno dei file che andrete a modificare (non penso che qualche errore generi un bootloop, ma non posso darvi l'assoluta certezza).
    • Deodexed ROM.
    • Tool per decompilare file .apk e .jar (per decompilare ogni apk del nostro cellulare, sappiamo tutti che è necessario installare prima i pacchetti framework, in questo caso framework-res.apk e SemcGenericUxpRes.apk che si trovano entrambi nella cartella /system/framework).
    • File da modificare che sono: android.policy.jar (che si trova in /system/framework) e SystemUI.apk (che si trova in /system/apk)
    • Notepad++ (altamente consigliato) per modificare i valori.


    Dunque nei vari codici verranno indicate diverse parti con diversi colori:
    BLU: caratteri da ricercare con lo strumento prova
    ROSSA: parte di codice da rimuovere
    VERDE: parte di codice da aggiungere


    Preciso che chi ha scritto questa guida possiede un Xperia Sola (Sole in Italia ) e che quindi alcuni numeri di linee di codice non possono corrispondere con quelle del nostro telefono, per questo è necessario fare attenzione al contenuto a non alle linee.
    Aggiungo inoltre che alcune parti da noi possono non essere presenti e quindi è sufficiente proseguire oltre nella guida




    1. Decompilare android.policy.jar e aprire android.policy\smali\com\android\internal\policy\i mpl\PhoneWindowManager.smali

      codice:
       
      .line 2552
          iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemTop:I
      
          iput v0, p1, Landroid/graphics/Rect;->top:I
      
          .line 2553
          iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemRight:I
      
          iput v0, p1, Landroid/graphics/Rect;->right:I
      
         .line 2554
          iget v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mSystemBottom:I
      
          iput v0, p1, Landroid/graphics/Rect;->bottom:I
      
           .line 2555
          iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;
      
          if-eqz v0, :cond_0
      
          iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mStatusBar:Landroid/view/WindowManagerPolicy$WindowState;
      
          invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowState;->getSurfaceLayer()I
      
          move-result v0
      
          .line 2557
          :goto_0
          return v0
      
          .line 2556
          :cond_0
          iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mNavigationBar:Landroid/view/WindowManagerPolicy$WindowState;
      
          if-eqz v0, :cond_1
      
          iget-object v0, p0, Lcom/android/internal/policy/impl/PhoneWindowManager;->mNavigationBar:Landroid/view/WindowManagerPolicy$WindowState;
      
          invoke-interface {v0}, Landroid/view/WindowManagerPolicy$WindowState;->getSurfaceLayer()I
      
          move-result v0
      
          goto :goto_0
      
          .line 2557
          :cond_1
          const/4 v0, 0x0
      
          goto :goto_0
          const/4 v0, 0x0
      
          return v0
      .end method
    2. Ricompilare android.policy.jar
    3. Decompilare SystemUI.apk e aprire \SystemUI\res\values\drawables.xml

      codice:
      <item type="drawable" name="status_bar_background">#ff000000</item>
      <item type="drawable" name="system_bar_background">#ff000000</item>
      Voi dovreste trovare questi valori e per modificare la trasparenza dovrete modificare il codice esadecimale (in entrambi), sostituendo le 2 "f" con il valore corrispondente alla trasparenza che volete.

      L'autore del topic in xda spiega anche il calcolo da fare per trovare il valore della trasparenza voluta.

      2,55 х (100-20%)=204 (per trasparenza al 20%)
      Questo valore va poi ricercato in questa tabella e va utilizzato il valore corrispondente in esadecimale nel codice.
      Io però consiglio invece di usare paint.net, per ottenere in un modo più immediato il valore della trasparenza da inserire, in questo modo si riesce anche a prevedere il risultato finale

      Spoiler:

    4. Aprire \SystemUI\res\layout\navigation_bar.xml

      codice:
      <com.android.systemui.statusbar.phone.NavigationBarView android:background="#ff000000" android:layout_width="fill_parent" android:layout_height="fill_parent" android:directionality="none"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"> (android:background)
      Sostituite di nuovo le "f" con il valore che desiderate.
    5. Aprire SystemUI\smali\com\android\systemui\statusbar\phon e\PhoneStatusBar.smali e cercare "IIIII" (senza le virgolette).

      codice:
      const/16 v3, 0x7e3
      
       const v4, 0x4800068
      
       const/4 v5, -0x3
      
       move v2, v1
      
       move v5, v1
      
       invoke-direct/range {v0 .. v5}, Landroid/view/WindowManager$LayoutParams;-><init>(IIIII)V
      Cercare poi "showNav" o "mPixelFormat:I".

      codice:
      .line 417
       .end local v3 #showNav:Z
       :cond_1
       :goto_2
       const/4 v5, -0x3 (o const/4 v9, -0x3 per l'Xperia Z)
      
       iput v13, p0, Lcom/android/systemui/statusbar/phone/PhoneStatusBar;->mPixelFormat:I
    6. Compilare SystemUI.apk
    7. Sostituire nel telefono i file originali con quelli modificati.


    I problemi che POSSONO sorgere sono:
    • Degli errori di visualizzazione della navigation bar, come accade in questo screenshot nelle parti laterali, che si risolvono subito dopo aver premeto un tasto qualunque sempre sulla navigation bar.
      Spoiler:

    • Il tasto, applicazioni recenti, dopo essere stato premuto, a volte mantiene il classico "alone bianco" come se fosse bloccato, in realtà, basta premere di nuovo e torna tutto ok.


    Un problema che invece SORGE sicuramente è questo:
    Spoiler:


    Ma niente paura, esiste la soluzione a quest'ultimo problema, con questi risultati ():
    Spoiler:


    Basterà seguire questa guida (https://www.androidiani.com/forum/mo...ockscreen.html) presa da xda (come sempre) e tradotta da me.


    Spero che questa guida sia di aiuto
    Se qualcuno dovesse riscontrare qualche problema me lo segnali, perché, seppur sia stata messa nella sezione dell'Xperia T, su xda, chi l'ha fatta, possiede l'Xperia Sola (Sole, il nome italiano).
    Io comunque per il momento grossi problemi non ne ho riscontrati a parte quelli sopracitati
    Ultima modifica di juniorbryant; 26-09-13 alle 23:08

  2. I seguenti 4 Utenti hanno ringraziato juniorbryant per il post:

    Eddy2302 (22-09-13),ivano949 (10-09-13),Kylua (15-11-13),theflanker (10-09-13)

  3.  

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy