TextView – définir la taille du texte par programme ne semble pas fonctionner

J’utilise Eclipse Indigo, en testant 2 émulateurs (2.2 et 3.0).

le code ci-dessous montre ce que je teste maintenant, cependant la définition de la taille du texte ne révèle rien sur l’écran lorsque vous essayez d’exécuter l’émulateur (si je commente la taille du texte, le texte apparaît avec une couleur rouge). Je pensais que l’éclipse était en train de reconstruire le code mais j’ai ajouté la ligne de code pour append le fond bleu et ça a fonctionné. J’ai essayé de définir la taille du texte après avoir défini le texte sans succès. le code est ci-dessous. Merci de votre aide! (disclaimer) – J’essaie de restr loin de xml. Étant donné que je sais déjà java, je ne veux pas dépendre de ça.

import android.app.Activity; import android.graphics.Color; import android.os.Bundle; import android.widget.TextView; public class TestAndroidvs2Activity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView text = new TextView(this); text.setTextColor(Color.RED); text.setTextSize(2); text.setBackgroundColor(Color.BLUE); text.setText("Hello Android"); setContentView(text); } } 

La taille du texte 2 sera pratiquement invisible. Essayez-le avec 14 au moins. BTW, l’utilisation de xml a beaucoup d’avantages et vous facilitera la vie une fois que vous avez besoin de faire quelque chose de plus complexe que “Hello World”.

la méthode TextView.setTextSize(int unit , int size); prend deux parameters.

Essaye ça :

 text.setTextSize(TypedValue.COMPLEX_UNIT_SP,14); 

référez ceci et ceci .

Cela a résolu le problème pour moi. J’ai une taille de police uniforme pour tous les appareils.

  textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.font)); 

S’il vous plaît voir ce lien pour plus d’informations sur la définition de la taille du texte dans le code. Fondamentalement, il dit:

public void setTextSize (unité int, taille de flotteur)

Depuis: API Niveau 1 Définissez la taille du texte par défaut sur une unité et une valeur données. Voir TypedValue pour les unités de dimension possibles. Atsortingbuts XML associés

android: textSize Paramètres

unit L’unité de dimension souhaitée.
taille La taille souhaitée dans les unités données.

Dans mon cas Utilisé cette méthode :

 public static float pxFromDp(float dp, Context mContext) { return dp * mContext.getResources().getDisplayMesortingcs().density; } 

Ici, définissez TextSize par programmation :

 textView.setTextSize(pxFromDp(18, YourActivity.this)); 

Continuer à profiter:)

Actuellement, la setTextSize(float size) fonctionnera bien, nous n’avons donc pas besoin d’utiliser une autre méthode pour modifier la taille du texte

 /** * Set the default text size to the given value, interpreted as "scaled * pixel" units. This size is adjusted based on the current density and * user font size preference. * * 

Note: if this TextView has the auto-size feature enabled than this function is no-op. * * @param size The scaled pixel size. * * @attr ref android.R.styleable#TextView_textSize */ @android.view.RemotableViewMethod public void setTextSize(float size) { setTextSize(TypedValue.COMPLEX_UNIT_SP, size); }

exemple en utilisant

 textView.setTextSize(20); // set your text size = 20sp