以编程方式中心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);