1

私は現在、この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 バージョンのように中央ではなく、右上隅に表示されます。

4

1 に答える 1

1

XMLでは、内のテキストの重力を設定していますTextView。コードでは、TextViewのレイアウトの重力を設定しています。

XMLで行ったことを複製するには、次の行を変更します。

contentLayout.gravity = Gravity.CENTER;

に:

textView.setGravity(Gravity.CENTER);

XMLがandroid:layout_gravity="center"代わりに持っていた場合android:gravity="center"、コードはそのまま一致します。

于 2013-01-09T14:34:10.647 に答える