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:
Come si può vedere ai bottoni è impostato uno stile: MyButtonStylecodice:<?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>
Poi ho definito il seguente file res/values/styles.xml che definisce un tema ed uno stile:
Il tema imposta delle proprietà generali come lo sfondo rosso e dice che per tutti i bottoni devo usare lo stile MyButtonStyle definito sottocodice:<?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>
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:
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?codice:android:layout_width="wrap_content" android:layout_height="wrap_content"
3) Nel file del layout main.xml come potete vedere per ogni bottone definisco un id così:
Perchè la'utore dell'esempio mette il simbolo + davanti all'id? cosa rappresenta esattamente?codice:android:id="@+id/styleButton"
4) Provando a mettere un background al bottone, dentro al file style.xml metto:
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 spaziocodice:<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>
Probabilmente sono banalità ma vorrei fare un po' di chiarezza su questi argomenti
Grazie
Andrea

LinkBack URL
About LinkBacks
Rispondi quotando

