Autore Topic: Come cambiare la grafica di un radiobutton  (Letto 2326 volte)

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Come cambiare la grafica di un radiobutton
« il: 19 Novembre 2010, 11:05:07 CET »
0
Ciao,
volevo cambiare la visualizzazione dell'icona di default del radio button
Di default è un tondo grigio che si illumina di arancione
Io volevo sostituire il tondo grigio con un tondo che ho realizzato io
Per farlo avrei aggiunto l'istruzione
android:drawableLeft="@drawable/bottone_stile_radio"
Il risultato è che mi appare l'immagine come background al radio button ma io lo vorrei come sostituto della grafica del bottone
Questo è il mio docie .xml

Codice (XML): [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:id="@+id/txtDemo" android:layout_width="fill_parent"
                android:layout_height="wrap_content" android:text="Radio Button Test" />
        <RadioGroup
                android:layout_width="wrap_content" android:layout_height="wrap_content"
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="horizontal">
                <RadioButton android:id="@+id/crea_giocatore_maschio"
                        android:layout_width="wrap_content" android:layout_height="wrap_content"
                        android:text="Maschio" android:checked="true" android:layout_gravity="left"
                        android:layout_weight="0" android:typeface="serif"
                        android:drawableLeft="@drawable/bottone_stile_radio">
                </RadioButton>
                <RadioButton android:id="@+id/crea_giocatore_femmina"
                        android:layout_width="wrap_content" android:layout_height="wrap_content"
                        android:text="Femmina" android:checked="true" android:layout_gravity="left"
                        android:layout_weight="0" android:typeface="serif"
                        android:drawableLeft="@drawable/bottone_stile_radio">
                </RadioButton>
        </RadioGroup>
   
   
Dove ho definito l'xml bottone_stile_radio.xml:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>    
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/bottone_radio_pressed" />
    <item android:state_focused="true" android:drawable="@drawable/bottone_radio_focus" />
    <item android:drawable="@drawable/bottone_radio" />
</selector>

P.S. bottone_radio è un'immagine 24px * 24px

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Come cambiare la grafica di un radiobutton
« Risposta #1 il: 19 Novembre 2010, 11:16:53 CET »
0
questo: [facile] Button con background personalizzato ridimensionabile - Android Developers Italia
è quello che devi fare,però con un radio invece che un button
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Come cambiare la grafica di un radiobutton
« Risposta #2 il: 19 Novembre 2010, 11:23:41 CET »
0
Devi lavorare con i temi.

Qui c'è scritto tutto:

Is it possible to change the radio button icon in an android radio button group - Stack Overflow

PS: Non si fanno mai assunzioni sulle dimensioni :)

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Come cambiare la grafica di un radiobutton
« Risposta #3 il: 19 Novembre 2010, 11:29:25 CET »
0
Avrei trovato una soluzione ma non riesco ad implementarla, questi sono i link di riferimento

Is it possible to change the radio button icon in an android radio button group - Stack Overflow
Understanding Android Themes and Styles &laquo; Brain Flush

Seguendo le loro istruzioni ho creato due files:
radio.xml e l'ho messo nella directory drawable-ldpi
styles.xml e l'ho messo nella directory values

Il problema è che quando definisco la proprietà
style="@style/styles"


<RadioButton android:id="@+id/crea_giocatore_femmina"
         android:layout_width="wrap_content" android:layout_height="wrap_content"
         android:text="Femmina" android:checked="true" android:layout_gravity="left"
         android:layout_weight="0" android:typeface="serif"
         android:drawableBottom="@drawable/bottone_stile_radio"
         style="@style/styles">
      </RadioButton>
      
Eclipse mi segnala l'errore:
No resources found that match the given name at 'style' with value @style/styles
      
Come se gli mancasse il file styles.xml, ma il file c'è ed è nella directory values

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Come cambiare la grafica di un radiobutton
« Risposta #4 il: 19 Novembre 2010, 11:36:50 CET »
0
Della serie prima si chiede sui forum poi si cerca su internet...

Comunque, perchè radio.xml l'hai messo in drawable-ldpi? se non lo metti in drawable devi predisporne uno per ogni densità.

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Come cambiare la grafica di un radiobutton
« Risposta #5 il: 19 Novembre 2010, 11:54:14 CET »
0
Ricky prima ho fatto una ricerca su internet e non avenodo trovato la risposta ho chiesto nel forum
Dopo che ho chiesto nel forum te hai parlato di stili ed ho fatto una nuova ricerca trovando i link sopracitati

Ho spostato il file radio.xml nella directory drawable

Ricky cosa vuol dire la tua affermazione?
Non si fanno mai assunzioni sulle dimensioni? Forse c'è qualcosa che mi sfugge..
Quando specifico un'immagine di background in android io la scrivo in dip:
width: 24dip
height: 24dip

L'immagine che ci metto è una 24 px * 24px

Quindi fino a schermi con dip 160 (dove il rapporto è 1dip = 1px) va tutto bene
Su schermi con dip superiore l'immagine risulterà sfuocata

sbaglio qualcosa?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Come cambiare la grafica di un radiobutton
« Risposta #6 il: 19 Novembre 2010, 11:59:56 CET »
0
sbaglio qualcosa?

No basta che sei conscio del fatto che ti serviranno nelle immagini diverse per le altre densità :)
Hai risolto quindi per l'altro problema?

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Come cambiare la grafica di un radiobutton
« Risposta #7 il: 19 Novembre 2010, 12:11:55 CET »
0
Ho spostato il file radio.xml nella directory drawable ma il problema è sempre rimasto

Per le altre densità, se faccio puntare tutte al file di 24px, sarà il sistema operativo a ridimensionare l'immagine in maniera opportuna, in particolare dovrà rimpicciolirla e quindi non si perde in qualità, è corretto vero?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Come cambiare la grafica di un radiobutton
« Risposta #8 il: 19 Novembre 2010, 12:57:29 CET »
0
L'errore è abbastanza chiaro. Non trova nessuno stile con quel nome.
Sarebbe utile che tu postassi il codice che hai scritto nei vari file.

Per le immagini è preferibile che tu ne realizzi una per ogni densità. Se lasci così il sistema in qualche modo si arrangia però l'adattamento delle immagini a runtime è sicuramente pesante :)

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Come cambiare la grafica di un radiobutton
« Risposta #9 il: 19 Novembre 2010, 15:04:54 CET »
0
Ho risolto, c'era una 's' di troppo, dovevo scrivere

style="@style/CustomTheme"
« Ultima modifica: 19 Novembre 2010, 15:10:36 CET da andream1977 »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Come cambiare la grafica di un radiobutton
« Risposta #10 il: 19 Novembre 2010, 15:08:24 CET »
0
Vai nel manifest e dai come attributo theme alla tua activity il valore  @styles/CustomTheme ;)

Offline andream1977

  • Utente normale
  • ***
  • Post: 260
  • Respect: +7
    • Mostra profilo
  • Dispositivo Android:
    Nexus S
  • Sistema operativo:
    windows xp
Re:Come cambiare la grafica di un radiobutton
« Risposta #11 il: 19 Novembre 2010, 15:12:54 CET »
0
ricky per non far apparire la mia immagine sfuocata nei vari terminali
per quelli ad alta densità cioè 160dip, se la mia immagine è 40px* 40px specifico come dimensioni 40dip*40dip
per i terminali a bassa densità, di che dimensioni la devo realizzare la mia immagine?

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Come cambiare la grafica di un radiobutton
« Risposta #12 il: 19 Novembre 2010, 15:53:13 CET »
0
ricky per non far apparire la mia immagine sfuocata nei vari terminali
per quelli ad alta densità cioè 160dip, se la mia immagine è 40px* 40px specifico come dimensioni 40dip*40dip
per i terminali a bassa densità, di che dimensioni la devo realizzare la mia immagine?
Icon Design Guidelines, Android 2.0 | Android Developers
;)
Postate il LogCat LogCat LogCat LogCat LogCat