Autore Topic: Creazione tema custom  (Letto 1630 volte)

Offline vavabigol

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire - CM 7.2.0.1
  • Sistema operativo:
    Ubuntu 11.10 - Windows 7
Creazione tema custom
« il: 28 Novembre 2011, 12:07:37 CET »
0
Ciao a tutti!
Sto cercando di creare un mio tema, in modo da evitare di assegnare uno stile ad ogni oggetto.. ho però un problema: questo è la parte di codice che ho scritto

Codice (XML): [Seleziona]
<!-- TEMA -->
        <style name="myTheme" parent="@android:style/Theme.Holo">
                <item name="android:textAppearance">@style/myText</item>
                <item name="android:textAppearanceSmall">@style/myText.Small</item>
                <item name="android:textAppearanceMedium">@style/myText.Medium</item>
                <item name="android:textAppearanceLarge">@style/myText.Large</item>
                <item name="android:buttonStyle">@style/myButton</item>
        </style>
       
        <style name="myText" parent="@android:style/TextAppearance">
                <item name="android:textColor">@color/white</item>
                <item name="android:textSize">20sp</item>
        </style>
       
        <style name="myText.Small" parent="@android:style/TextAppearance.Small">
                <item name="android:textColor">@color/white</item>
                <item name="android:textSize">15sp</item>
        </style>
       
        <style name="myText.Medium" parent="@android:style/TextAppearance.Medium">
                <item name="android:textColor">@color/white</item>
                <item name="android:textSize">25sp</item>
        </style>
       
        <style name="myText.Large" parent="@android:style/TextAppearance.Large">
                <item name="android:textColor">@color/white</item>
                <item name="android:textSize">30sp</item>
        </style>
       
        <style name="myButton" parent="@android:style/Widget.Holo.Button">
                <item name="android:paddingTop">20dp</item>
                <item name="android:paddingBottom">20dp</item>
                <item name="android:textColor">@color/white</item>
                <item name="android:textSize">27sp</item>
        </style>

In questo modo quando utilizzo un textView "small", "medium" e "large" compaiono con le mie impostazioni. Il problema è che quando utilizzo il textView diciamo "normale" vengono prese le impostazioni messe per lo small.. dove sbaglio?
Conoscete una guida per creare un tema completo e non solo lo stile di qualche view? Grazie  :-)

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Creazione tema custom
« Risposta #1 il: 28 Novembre 2011, 16:52:47 CET »
0
Prova a postare anche il manifest.xml, dove avrai settato il tema da utilizzare:
Codice (XML): [Seleziona]
<application
android:icon=”@drawable/icon”
android:label=”@string/app_name”
android:theme=”@style/mioTema”>
/aplication>

Puoi settarlo anche solo a livello di Activity
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline vavabigol

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire - CM 7.2.0.1
  • Sistema operativo:
    Ubuntu 11.10 - Windows 7
Re:Creazione tema custom
« Risposta #2 il: 28 Novembre 2011, 17:11:18 CET »
0
il manifest è questo.. praticamente identico a quello postato da te..
Codice (XML): [Seleziona]
<application
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@style/myTheme">

<!-- Activity.... -->

</application>

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Creazione tema custom
« Risposta #3 il: 28 Novembre 2011, 17:15:53 CET »
0
Prova a rinomina mytext in mytext.normal

A vedere il tuo xml sembra (poi magari è così) che mytext è lo stile principale, mentre gli altri mytext.small eredita da mytext.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline vavabigol

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire - CM 7.2.0.1
  • Sistema operativo:
    Ubuntu 11.10 - Windows 7
Re:Creazione tema custom
« Risposta #4 il: 28 Novembre 2011, 17:26:01 CET »
0
mmm.. pare non cambiare nulla..!  :-(

Si, effettivamente la mia idea è avere myText come stile "generale" .. e poi le varie specializzazioni in small, medium e large.
Non funziona così anche per Android?

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Creazione tema custom
« Risposta #5 il: 28 Novembre 2011, 17:29:56 CET »
0
E' corretto.
Appena ho due minuti copio il tuo xml e lo provo.
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Creazione tema custom
« Risposta #6 il: 28 Novembre 2011, 17:43:56 CET »
0
Però si eredita qualcosa di presenta nel parent , come fai tu ridefinisci lo style sovrascrivendo i valori già esistenti.
Ma non erediti nulla dal parent.

Hai dato un occhio qui ?

http://developer.android.com/guide/topics/ui/themes.html
« Ultima modifica: 28 Novembre 2011, 17:47:10 CET da Luigi.Arena »
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline vavabigol

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire - CM 7.2.0.1
  • Sistema operativo:
    Ubuntu 11.10 - Windows 7
Re:Creazione tema custom
« Risposta #7 il: 29 Novembre 2011, 10:23:18 CET »
0
si, avevo letto prima di scrivere qua. Ed infatti l'xml che ho messa l'ho scritto prendendo spunto dalla documentazione.. probabilmente però mi sfugge qualcosa :)

Ad ogni modo.. in che senso non eredito nulla dal parent? La mia idea era di ereditare il tema e modificare quello che mi serve..
Ora ho riletto la documentazione ed ho cambiato il codice in questo modo ma non cambia nulla..

Codice (XML): [Seleziona]
<!-- TEMA -->
        <style name="myTheme" parent="android:Theme.Holo">
                <item name="android:textAppearance">@style/myText</item>               
        </style>
       
        <style name="myText" parent="@android:style/TextAppearance">           
                <item name="android:textColor">@color/white</item>
                <item name="android:textSize">20sp</item>
        </style>
       
        <style name="myText.Small">
                <item name="android:textSize">15sp</item>
        </style>
       
        <style name="myText.Medium">           
                <item name="android:textSize">25sp</item>
        </style>
       
        <style name="myText.Large">
                <item name="android:textSize">30sp</item>
        </style>

Cosa sbaglio scusa? Eredito il tema e cambio il testo mettendo il colore bianco.. modificando poi la grandezza dello small, medium e large.. o almeno quello è l'intento..
« Ultima modifica: 29 Novembre 2011, 11:43:11 CET da vavabigol »

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Creazione tema custom
« Risposta #8 il: 29 Novembre 2011, 16:33:16 CET »
0
Allora ho fatto qualche prova,prova a modificare questa riga:

Codice (XML): [Seleziona]
<style name="myTheme" parent="android:Theme.Holo">
                <item name="android:textAppearance">@style/myText</item>                
        </style>
così:
Codice (XML): [Seleziona]
<style name="myTheme" parent="@android:Theme.Holo">
                <item name="android:textAppearance">@style/myText</item>                
        </style>

oppura prova:
Codice (XML): [Seleziona]
<style name="myTheme" parent="@android:style/Theme">
                <item name="android:textAppearance">@style/myText</item>                
        </style>
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline vavabigol

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire - CM 7.2.0.1
  • Sistema operativo:
    Ubuntu 11.10 - Windows 7
Re:Creazione tema custom
« Risposta #9 il: 29 Novembre 2011, 16:53:19 CET »
0
.. non cambia comunque nulla... che sia il mio ambiente di sviluppo (eclipse) che ha qualche problema? Però mi sembra strano perché ieri per curiosità l'ho provato su un diverso pc e il risultato era medesimo (ovviamente, voi direte.. però non si sa mai ;)! )

Ho provato anche a fare un nuovo progettino, per vedere se magari era un problema del vecchio layout.. ma non succede nulla.. nemmeno con le nuove indicazioni tue..  :-(

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Creazione tema custom
« Risposta #10 il: 29 Novembre 2011, 17:01:33 CET »
0
Ti faccio una domanda stupida  ???
Le prove le fai con l'applicazione in run ?
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline vavabigol

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire - CM 7.2.0.1
  • Sistema operativo:
    Ubuntu 11.10 - Windows 7
Re:Creazione tema custom
« Risposta #11 il: 29 Novembre 2011, 17:22:22 CET »
0
no no ..so che non vedo immediatamente le modifiche ;)

Per farti capire che risultato ottengo ti posto il codice del progettino di prova che ho appena fatto..

Questo è lo styles.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<resources>
        <style name="customTheme" parent="@android:style/Theme.Holo">
            <item name="android:textAppearance">@style/redText</item>
        </style>
       
        <style name="redText" parent="@android:style/TextAppearance">
            <item name="android:textColor">#FF0000</item>
        </style>
   
</resources>

Nel manifest ho aggiunto al tag "application"

Codice (XML): [Seleziona]
android:theme="@style/customTheme"
E il risultato è nell'immagine allegata..
L'xml del layout sono semplicemente le 4 view trascinate. Come puoi vedere "CheckedTextView" prende le mie modifiche, il resto se ne frega :-(
Oltrettutto, se inserisco in "redText" anche
Codice (XML): [Seleziona]
<item name="android:textSize">40sp</item> viene cambiata la grandezza di tutte le view, tranne textView.

Nella documentazione compare come sappiamo
Citazione
However, if you apply a style to a View that does not support all of the style properties, the View will apply only those properties that are supported and simply ignore the others

che sia questo il problema? Il punto è: come è possibile che checkedTextView, che è una classe derivata da TextView, prenda la modifica del colore e le altre view no?

Sicuramente se non va sbaglio qualcosa, ma non capisco cosa.

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Creazione tema custom
« Risposta #12 il: 29 Novembre 2011, 17:23:15 CET »
0
Ho notato che manca il seguente tag nel style:

Codice (XML): [Seleziona]
<resources>

......style
</resources>
« Ultima modifica: 29 Novembre 2011, 17:25:46 CET da Luigi.Arena, Reason: non avevo letto il post precedente »
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline Luigi.Arena

  • Utente senior
  • ****
  • Post: 616
  • DACIA DUSTER 4X4 SUPER
  • Respect: +56
    • Mostra profilo
    • ArenaWebTest
  • Dispositivo Android:
    epad m009
  • Play Store ID:
    Luigi Arena
  • Sistema operativo:
    Windows 7
Re:Creazione tema custom
« Risposta #13 il: 29 Novembre 2011, 17:43:37 CET »
0
Questo funziona:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<resources>

        <style name="customTheme" parent="@android:style/Theme.Black">
                <item name="android:textAppearance">@style/redText</item>
                <item name="android:text">@style/redText</item>
                <item name="android:textAppearanceLarge">@style/redText</item>
                <item name="android:textAppearanceMedium">@style/redText</item>
                <item name="android:textAppearanceSmall">@style/redText</item>
        </style>

        <style name="redText" parent="@android:style/TextAppearance">
                <item name="android:textColor">#FF0000</item>
                <item name="android:textSize">50sp</item>
        </style>

</resources>
È stata trovata una soluzione al tuo problema?Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato .

Offline vavabigol

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire - CM 7.2.0.1
  • Sistema operativo:
    Ubuntu 11.10 - Windows 7
Re:Creazione tema custom
« Risposta #14 il: 30 Novembre 2011, 15:05:15 CET »
0
si questo funziona.. il problema però ora è che tutto il testo nell'app ha la stessa dimensione.. e se provo a differenziare con "small", "medium" e "large" incappo ancora nel problema che avevo.. e cioè che per "medium" e "large" tutto funziona, mentre "small" viene applicato sia a view che specificano nel textAppearance il valore "small" sia per quelle che non lo fanno..

Per spiegarmi meglio: la mia idea è quella di mettere il colore bianco a tutto il testo esistente nell'app, per default, ed avere inoltre a disposizione 4 diverse dimensioni di carattere nelle TextView:
- Normale ( senza stile particolare, per intenderci)
- Small
- Medium
- Large
Vorrei che questi vengano presi automaticamente, solamente impostando il tema, anche da tutte le view che ereditano caratteristiche e stili dalla textView oltre che dalle textView stesse..