以编程方式中心TextView文本

我在这里乞求一些宽容,我刚刚开始使用Android SDK教程,我正在尝试一些兴趣,这不是在教程本身,但我希望会很容易。

我想通过横向和纵向的代码中心一个TextView项目(我可以在XML中做到这一点)。 我已经看到了几个如何做父母是一个表或其他对象的例子,但我希望这可以更容易地掌握。 (ps请随意纠正我的术语)。

以下是教程/我的工作模型中的示例代码:

 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); } } 

我设法findsetGravity方法,我试图涉足它的setLayoutParams ,但我不知道什么范围是因为我找不到我应该导入来获得WRAP_CONTENT不断地解决。 从我的理解来看,centering和content_wrapping + gravity是两个不同的东西。 我想要一个在这种情况下如何做的例子,也许我会在API文档中find答案。

 yourTextView.setGravity(Gravity.CENTER); 

对于dynamic中心

 textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL); 

这将工作肯定..

 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); 

 text.setGravity(Gravity.TOP); 

 text.setGravity(Gravity.BOTTOM); 

 text.setGravity(Gravity.LEFT); 

 text.setGravity(Gravity.RIGHT); 

 text.setGravity(Gravity.CENTER_VERTICAL); 

 text.setGravity(Gravity.CENTER_HORIZONTAL); 

并且更多也是可利用的

尝试添加以下代码以将布局参数应用于TextView

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

如果您的文字大小很小,您应该使文本视图的宽度为“fill_parent”。 之后,您可以将TextView重力设置为居中:

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