Ruego un poco de indulgencia aquí, recién estoy comenzando con los tutoriales del SDK de Android y estoy intentando algo por interés que no está en el tutorial en sí, pero espero que sea fácil.
Estoy tratando de centrar un TextViewelemento a través de código horizontal y verticalmente (puedo hacerlo en XML muy bien). He visto varios ejemplos de cómo hacer esto cuando el padre es una mesa o algún otro objeto, pero espero que esto sea más fácil de entender para mí. (PD: siéntase libre de corregir mi terminología).
Aquí está el código de ejemplo del tutorial / mi modelo de trabajo:
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);
    }
}
Me las arreglé para ubicar el setGravitymétodo y traté de incursionar en setLayoutParamsél, pero no estoy seguro de cuál es el alcance, ya que no puedo ubicar lo que debería importar para que la WRAP_CONTENTconstante se resuelva. . Por lo que entendí, centrar y content_wrapping + gravity son dos cosas separadas. Me gustaría un ejemplo de cómo hacer ambas cosas en este caso y tal vez cómo / dónde habría encontrado la respuesta en la documentación de la API.

Respuestas:
yourTextView.setGravity(Gravity.CENTER);fuente
android:textAlignment="gravity"atributo está configurado como gravedad. De lo contrario, textAlignment anula.yourTextView.setTextAlignment(View.TEXT_ALIGNMENT_GRAVITY);Para centrar dinámicamente
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);fuente
TextView text = new TextView(this); text.setGravity(Gravity.CENTER);y
text.setGravity(Gravity.TOP);y
text.setGravity(Gravity.BOTTOM);y
text.setGravity(Gravity.LEFT);y
text.setGravity(Gravity.RIGHT);y
text.setGravity(Gravity.CENTER_VERTICAL);y
text.setGravity(Gravity.CENTER_HORIZONTAL);Y más también disponible
fuente
esto funcionará seguro ..
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);fuente
Intente agregar el siguiente código para aplicar los parámetros de diseño al TextView
LayoutParams lp = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); lp.addRule(LinearLayout.CENTER_IN_PARENT); textView.setLayoutParams(lp);fuente
si el tamaño de su texto es pequeño, debe hacer que el ancho de la vista de texto sea "fill_parent". Después de eso, puede configurar su TextView Gravity en el centro:
TextView textView = new TextView(this); textView.setText(message); textView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT)); textView.setGravity(Gravity.CENTER);fuente
Puede utilizar lo siguiente para centrar el
TextViewtexto mediante programación en Kotlin:textview.gravity = Gravity.CENTERfuente
prueba este método
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); }fuente
Estos dos necesitan ir juntos para que funcione. He estado rascándome la cabeza por un tiempo.
numberView.textAlignment = View.TEXT_ALIGNMENT_CENTER numberView.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)fuente