2011-12-18 11 views
11

Quando chiamo a livello di codice setTextAppearance(this, android.R.style.TextAppearance_Medium), ottengo caratteri di medie dimensioni con testo grigio chiaro.Differenza tra setTextAppearance da codice a risorsa

Tuttavia, quando uso android:textAppearance="@android:style/TextAppearance.Medium" nell'xml, ottengo lo stesso testo ma è di colore nero.

Qual è la differenza tra questi?

La parte rilevante del file XML appare come segue:

<Button 
    android:id="@+id/button1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="@android:style/TextAppearance.Medium" 
    android:text="Button" /> 

Il codice è simile al seguente:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Button button = (Button)findViewById(R.id.button1); 
    button.setText("This is a long text"); 
    //button.setTextAppearance(this, android.R.style.TextAppearance_Medium); 
} 

risposta

1

Non dovrebbe essere diverso. L'unico modo per ottenere un colore diverso è quello di uno:

1) modificare il colore del testo programmatico dopo la vostra setTextAppearance

o

2) I file XML contiene un androide: textColor con il nero.

Se il codice xml contiene l'attributo android: textColor, Android utilizzerà quello, anziché quello definito in xml. Se si imposta TextText in modo manuale, verrà utilizzato il colore dello stile.

Quindi, probabilmente avete Android: textColor = "# 000000" nella XML per quell'elemento

+0

no, non modificare il colore del testo in qualsiasi – user204884

+0

e anche senza Android : textColor = "" nell'xml? – Entreco

+0

no - guarda la domanda aggiornata incluso il codice – user204884

8

la risposta corretta è setTextAppearance(context, android.R.style.TextAppearance_Large);

Problemi correlati