web-dev-qa-db-fra.com

Centrer par programme le texte TextView

Je demande un peu de clémence ici, je commence tout juste avec les tutoriels Android SDK et je tente quelque chose d’intérêt qui ne soit pas dans le tutoriel lui-même, mais j’espère que ce serait facile.

J'essaie de centrer un élément TextView via un code horizontalement et verticalement (je peux le faire en XML très bien). J'ai vu plusieurs exemples de la procédure à suivre lorsque le parent est une table ou un autre objet, mais j'espère que ce sera plus facile à comprendre pour moi. (p.s. Sentez-vous libre de corriger ma terminologie).

Voici l'exemple de code du tutoriel/mon modèle de travail:

package com.example.myfirstapp;

import Android.os.Bundle;
import Android.app.Activity;
import Android.content.Intent;
import Android.view.ViewGroup.LayoutParams;
import Android.widget.TextView;


public class DisplayMessageActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent intent = getIntent();
        String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

        TextView textView = new TextView(this);
        textView.setTextSize(40);
        textView.setText(message);
        textView.setGravity(View.TEXT_ALIGNMENT_GRAVITY);

        setContentView(textView);
    }
}

J'ai réussi à localiser la méthode setGravity et j'ai essayé de la manipuler dans setLayoutParams, mais je ne suis pas sûr de la portée de cette méthode car je ne peux pas localiser ce que je devrais importer pour obtenir le WRAP_CONTENT constante à résoudre. D'après ce que j'ai compris, centrage et content_wrapping + gravity sont deux choses distinctes. Je voudrais un exemple de comment faire les deux dans ce cas et peut-être comment/où j'aurais trouvé la réponse dans la documentation de l'API? 

72
Alex Summers
yourTextView.setGravity(Gravity.CENTER);
220
Syn3sthete

Pour centrer dynamiquement 

textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
20
Nirav Ranpara

cela fonctionnera à coup sûr ..

RelativeLayout layout = new RelativeLayout(R.layout.your_layour); 
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.CENTER_IN_PARENT);
params.addRule(LinearLayout.CENTER_IN_PARENT);
textView.setLayoutParams(params);
textView.setGravity(Gravity.CENTER);

layout.addView(textView);

setcontentView(layout);
4
Kalpesh Lakhani
TextView text = new TextView(this);

text.setGravity(Gravity.CENTER);

et 

text.setGravity(Gravity.TOP);

et 

text.setGravity(Gravity.BOTTOM);

et 

text.setGravity(Gravity.LEFT);

et

text.setGravity(Gravity.RIGHT);

et 

text.setGravity(Gravity.CENTER_VERTICAL);

et 

text.setGravity(Gravity.CENTER_HORIZONTAL);

Et plus également disponible 

4
Naveen Tamrakar

Essayez d’ajouter le code suivant pour appliquer les paramètres de présentation à TextView.

LayoutParams lp = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.WRAP_CONTENT,
                LinearLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(LinearLayout.CENTER_IN_PARENT);
textView.setLayoutParams(lp);
2
Antrromet

Vous pouvez utiliser les éléments suivants pour centrer par programmation le texte TextView dans Kotlin:

textview.gravity = Gravity.CENTER
1
Ads

si votre taille de texte est petite, vous devez définir "fill_parent" sur la largeur de votre affichage. Après cela, vous pouvez définir votre TextView Gravity sur le centre: 

TextView textView = new TextView(this);
textView.setText(message);
textView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
textView.setGravity(Gravity.CENTER);
1
arif ardiansyah

essayez cette méthode 

  public void centerTextView(LinearLayout linearLayout) {
    TextView textView = new TextView(context);
    textView.setText(context.getString(R.string.no_records));
    textView.setTypeface(Typeface.DEFAULT_BOLD);
    textView.setGravity(Gravity.CENTER);
    textView.setTextSize(18.0f);
    textView.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
    linearLayout.addView(textView);
}
0
saigopi