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?
yourTextView.setGravity(Gravity.CENTER);
Pour centrer dynamiquement
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
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);
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
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);
Vous pouvez utiliser les éléments suivants pour centrer par programmation le texte TextView
dans Kotlin:
textview.gravity = Gravity.CENTER
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);
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);
}