Android définit la gravité pour un TextView par programmation

Je peux utiliser android:gravity="bottom|center_horizontal" dans XML sur une textview pour obtenir les résultats souhaités, mais je dois le faire par programmation. Mon textview est à l’intérieur d’un tablerow si cela compte dans un relativelayout .

J’ai essayé:

 LayoutParams layoutParams = new TableRow.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL); labelTV.setLayoutParams(layoutParams); 

Mais si je comprends bien, cela l’appliquerait au tablerow , pas au textview?

 labelTV.setGravity(Gravity.CENTER | Gravity.BOTTOM); 

Par ailleurs, parlez-vous de la gravité ou de la layout_gravity? Ce dernier ne fonctionnera pas dans un RelativeLayout .

Cela permettra de centrer le texte dans une vue texte:

 TextView ta = (TextView) findViewById(R.layout.text_view); LayoutParams lp = new LayoutParams(); lp.gravity = Gravity.CENTER_HORIZONTAL; ta.setLayoutParams(lp); 

Nous pouvons définir la gravité de la mise en page sur toute vue comme ci-dessous

 myView = findViewById(R.id.myView); myView.setGravity(Gravity.CENTER_VERTICAL|Gravity.RIGHT); or myView.setGravity(Gravity.BOTTOM); 

Ceci est équivalent au code xml ci-dessous

 <... android:gravity="center_vertical|right" ... .../> 

Vous devriez utiliser textView.setGravity(Gravity.CENTER_HORIZONTAL); .

Rappelez-vous qu’en utilisant

 LinearLayout.LayoutParams layoutParams =new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); layoutParams2.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL; 

ne marchera pas Cela définira la gravité pour le widget et non pour son texte.

Utilisez ce code

  TextView textView = new TextView(YourActivity.this); textView.setGravity(Gravity.CENTER | Gravity.TOP); textView.setText("some text"); 
 textView.setGravity(Gravity.CENTER | Gravity.BOTTOM); 

Cela va définir la gravité de votre textview.