Android TextView以编程方式遵循XML

时间:2013-01-09 14:18:22

标签: android-layout textview android-xml android

我目前有这个xml:

<TextView android:id="@+id/dummy"
android:layout_width="match_parent"
android:layout_height="match_parent" 
android:gravity="center"
android:text="@string/test"
android:textStyle="bold" />

我试图将其转换为java版本,以便我可以设置字体:

setContentView(R.layout.activity_main);

// the get the activity_main layout (getContentView method does not exist?)
FrameLayout layout = (FrameLayout) findViewById(android.R.id.content);

final TextView textView = new TextView(context);
textView.setId(R.id.dummy);

FrameLayout.LayoutParams contentLayout = new FrameLayout.LayoutParams(
    LayoutParams.MATCH_PARENT,
    LayoutParams.MATCH_PARENT);
contentLayout.gravity = Gravity.CENTER;
textView.setText(R.string.test);

Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/arial.ttf");
textView.setTypeface(tf);

layout.addView(textView, contentLayout);

我遇到的问题是重力无效或match_parent。文本最终位于右上角,而不是像xml版本那样位于中心。

1 个答案:

答案 0 :(得分:1)

在XML中,您要设置TextView文本的重力。在代码中,您要设置TextView的布局 gravity。

要复制您在XML中所做的事情,请更改以下行:

contentLayout.gravity = Gravity.CENTER;

为:

textView.setGravity(Gravity.CENTER);

如果您的XML有android:layout_gravity="center"而不是android:gravity="center",那么您的代码将按原样匹配。