Je vous prie de faire preuve de clémence ici, je ne fais que commencer par les didacticiels du SDK Android et j'essaie quelque chose par intérêt qui ne figure pas dans le didacticiel lui-même, mais j'espère que ce serait facile.
J'essaie de centrer un TextView
élément via le code horizontalement et verticalement (je peux le faire en XML très bien). J'ai vu plusieurs exemples de la façon de procéder lorsque le parent est une table ou un autre objet, mais j'espère que cela me sera plus facile à comprendre. (ps N'hésitez pas à 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 setGravity
méthode, et j'ai essayé de m'essayer au setLayoutParams
for it, mais je ne suis pas sûr de sa portée car je ne peux pas localiser ce que je devrais importer pour obtenir la WRAP_CONTENT
constante à résoudre . D'après ce que j'ai compris, le centrage et le content_wrapping + la gravité 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?
Réponses:
yourTextView.setGravity(Gravity.CENTER);
la source
android:textAlignment="gravity"
attribut est défini sur la gravité. Sinon, textAlignment remplace.yourTextView.setTextAlignment(View.TEXT_ALIGNMENT_GRAVITY);
Pour centrer dynamiquement
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
la source
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
la source
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);
la source
Essayez d'ajouter le code suivant pour appliquer les paramètres de disposition à TextView
LayoutParams lp = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); lp.addRule(LinearLayout.CENTER_IN_PARENT); textView.setLayoutParams(lp);
la source
si la taille de votre texte est petite, vous devez faire en sorte que la largeur de votre vue de texte soit "fill_parent". Après cela, vous pouvez définir votre TextView Gravity au centre:
TextView textView = new TextView(this); textView.setText(message); textView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); textView.setGravity(Gravity.CENTER);
la source
Vous pouvez utiliser ce qui suit pour centrer le
TextView
texte par programme dans Kotlin:textview.gravity = Gravity.CENTER
la source
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); }
la source
Ces deux éléments doivent aller de pair pour que cela fonctionne. Je me gratte la tête depuis un moment.
numberView.textAlignment = View.TEXT_ALIGNMENT_CENTER numberView.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
la source