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 TextView
elemento 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 setGravity
mé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_CONTENT
constante 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
TextView
texto mediante programación en Kotlin:textview.gravity = Gravity.CENTER
fuente
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