我目前有这个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版本那样位于中心。
答案 0 :(得分:1)
在XML中,您要设置TextView
内文本的重力。在代码中,您要设置TextView的布局 gravity。
要复制您在XML中所做的事情,请更改以下行:
contentLayout.gravity = Gravity.CENTER;
为:
textView.setGravity(Gravity.CENTER);
如果您的XML有android:layout_gravity="center"
而不是android:gravity="center"
,那么您的代码将按原样匹配。