Autore Topic: Qualche domandina su gestione temi e stili  (Letto 628 volte)

Offline AndreaNobili

  • Utente junior
  • **
  • Post: 75
  • Respect: 0
    • Mostra profilo
Qualche domandina su gestione temi e stili
« il: 07 Agosto 2011, 09:53:50 CEST »
0
Ciao,
avrei una domandina da farvi circa la gestione degli stili e dei temi:

Con Eclipse ho creato un nuovo progetto Android ed ho definito il seguente layout tramite il file /res/layout/main.xml che semplicemente visualizza 2 bottoni:
Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:layout_width="fill_parent"
        android:layout_height="fill_parent">
       
        <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="@string/hello"
        />
       
        <Button android:text="styleButton"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/styleButton"
                style="@style/MyButtonStyle">
        </Button>
       
        <Button android:text="Bottone 2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/styleButton"
                style="@style/MyButtonStyle">
        </Button>
               
</LinearLayout>

Come si può vedere ai bottoni è impostato uno stile: MyButtonStyle

Poi ho definito il seguente file res/values/styles.xml che definisce un tema ed uno stile:

Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<resources>
        <style name="MyTheme" parent="android:Theme.Black">
                <item name="android:windowNoTitle">true</item>
                <item name="android:windowBackground">@color/red</item>
                <item name="android:buttonStyle">@style/MyButtonStyle</item>
        </style>
       
        <style name="MyButtonStyle" parent="@android:style/Widget.Button">
                <item name="android:textColor">@color/blue</item>
                <item name="android:height">@dimen/button_height_dp</ite+ Allegati ed altre opzioni

scorciatoie: premi shift+alt+s per insem>
                <item name="android:width">@dimen/button_width_dp</item>
        </style>
</resources>

Il tema imposta delle proprietà generali come lo sfondo rosso e dice che per tutti i bottoni devo usare lo stile MyButtonStyle definito sotto

DOMANDE:

1) Mi pare di capire che visto che nel file styles.xml nel tema definisco lo stile per tutti i bottoni (tramite android:buttonStyle), se voglio che tutti i bottoni abbiano lo stesso stile potrei anche risparmiarmi l'attributo style="@style/MyButtonStyle" dentro il file main.xml che definisce il layout, giusto?

2) Le dimensioni dei bottoni sono definite in un file /res/values/dimens.xml, ad esempio ho fatto la prova a dargli dimensioni di 160dp in larghezza e 160dp in altezza, ed in effetti ottengo 2 bottoni quadrati come mi aspetto...

Ora però c'è una cosa che non mi torna, come potete vedere ho definito le dimensioni dei bottoni dentro al file res/values/styles.xml.
Dentro al file /res/layout/main.xml per ogni bottone faccio:
Codice: [Seleziona]
android:layout_width="wrap_content"
android:layout_height="wrap_content"

cosa definiscono esattamente questi 2 attributi? perchè pensando che vengano sovrascritti dagli attributi che definiscono la dimensione dei bottoni nel file di stile styles.xml, ho provato ad eliminarli ma a questo punto l'applicazione non parte più...quindi credo che rappresentino altro...cosa mi sfugge?

3) Nel file del layout main.xml come potete vedere per ogni bottone definisco un id così:
Codice: [Seleziona]
android:id="@+id/styleButton"
Perchè la'utore dell'esempio mette il simbolo + davanti all'id? cosa rappresenta esattamente?

4) Provando a mettere un background al bottone, dentro al file style.xml metto:
Codice: [Seleziona]
<style name="MyButtonStyle" parent="@android:style/Widget.Button">
                <item name="android:textColor">@color/blue</item>
                <item name="android:height">@dimen/button_height_dp</item>
                <item name="android:width">@dimen/button_width_dp</item>
                <item name="android:background">@color/green</item>
        </style>

impostando un colore di background verde (definito in un file xml) succede che i bottoni diventano effettivamente verdi ma perdono la caratteristica classica dei bottoni ovvero quella che quando si clicka un bottone questo cambia colore ed inoltre ora tra i 2 bottoni verdi non viene più lasciato uno spazio

Probabilmente sono banalità ma vorrei fare un po' di chiarezza su questi argomenti

Grazie
Andrea