2013-08-28 20 views
7

Ho bisogno di nascondere l'icona di un pulsante di opzione: qualcosa come impostarla su invisibile, ma solo l'icona, non il testo (setInvisible nasconde anche il testo). L'icona dovrebbe occupare spazio, in modo che il testo sia allineato con quello degli altri pulsanti di opzione. Inoltre, il pulsante radio (il suo testo) dovrebbe essere cliccabile.Nascondi l'icona del pulsante di opzione ma non il testo

In altre parole, quello che voglio è che l'icona sia "trasparente" (non visibile), ma altrimenti "essere lì": essere cliccabile, occupare spazio.

Ho bisogno di farlo a livello di codice, non in XML.

Qualche idea?

+1

Si potrebbe creare un RadioButton senza testo, e alla sua sinistra un TextView contenente la descrizione RadioButton. –

+0

@MBennett Grazie, ma questo è XML. Ho bisogno dell'equivalente a quello di Java –

+0

@PhilippJahoda Buona idea, ma nel mio caso è difficile da applicare, perché ho bisogno di girare il pulsante da "normale" a "nessuna icona" e ritorno –

risposta

21

XML:

<RadioButton 
    android:paddingLeft="31dp" 
    android:button="@android:color/transparent" /> 

Java:

RadioButton myButton = (RadioButton) findViewById(R.id.radio); 
    myButton.setButtonDrawable(android.R.color.transparent); 
    myButton.setPadding(31, 0, 0, 0); 

setPadding() prende valori int che rappresentano Imbottitura in pixel, vedere [email protected] in modo regolare l'imbottitura come richiesto.

+0

@MBennett Grazie. Funziona, eccetto che "" 31dp "' (una stringa) non è permesso come primo argomento di 'setPadding'. L'ho cambiato in '(int) (31 * getResources(). GetDisplayMetrics(). Density + 0.5f', in modo da convertire da 31dp in pixel. Forse vuoi cambiare la tua risposta di conseguenza. ristretto, forse dovrò giocare con la larghezza o ho sbagliato la conversione? –

+1

34dp (convertito in pixel) sembra funzionare in Android 4.0. In 2.3 è necessario un valore leggermente più grande –

+0

Questo funziona per me ' myButton.setButtonDrawable (android.R.color.transparent); 'where' myButton.setButtonDrawable (null);' non grazie. – CrandellWS

1

set android:button="@null" rimuoverà l'icona della radio di default

<RadioButton 
    android:id="@+id/rb1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:button="@null" 
    android:text="Female" /> 
Problemi correlati