CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 2 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 2 su 2
Discussione:

Qualche domandina su gestione temi e stili

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
    Androidiano


    Registrato dal
    Aug 2010
    Messaggi
    84

    Ringraziamenti
    2
    Ringraziato 1 volta in 1 Post
    Predefinito

    Qualche domandina su gestione temi e stili

    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:
    <?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:
    <?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:
    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:
    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:
    <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

  2.  
  3. #2
    Senior Droid L'avatar di dhalia


    Registrato dal
    Oct 2010
    Messaggi
    314

    Ringraziamenti
    3
    Ringraziato 27 volte in 26 Posts
    Predefinito

    Conta che son un po' in ritardo quindi ti devo risponder magari un po' velocemente e magari saltando qualcosa vista la fretta e le tante doma:

    1) si puoi farlo e diventa molto comodo quando ad esempio devi metter un tema fisso per i titoli delle activity, per i bottoni o quanto altro

    2) wrap_content dice di occupare semplicemente quanto serve per visualizzare un contenuto, che sia testo, una serie di layout,...

    3) 'u che? comunque essenzialmente definisce che viene aggiunta un id nella classe R per con quel nome

    4) eh sì infatti ad esempio i bottoni standard di android hanno dei layout per ogni stato, quindi se vuoi customizzarli, in modo che al click o altro abbiano un determinato colore/forma devi costruirne di diversi

    Scappo che son stra in ritardo!

    Simone
    My School Manager: per Genitori e Alunni
    Memory il gioco di quando eri bambino
    Yummes WallPaper un simpatico wallpaper

    My WebSite:
    AlchemiaAndroid

    My Blog:
    AlchemiaSoft

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