如何使用此细节属性以编程方式创建TextView?

时间:2016-11-11 17:15:00

标签: java android textview programmatically-created

我正在创建像这样的TextView:

LinearLayout myLayout = (LinearLayout) activity.findViewById(R.id.ll1);
    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT,    LinearLayout.LayoutParams.WRAP_CONTENT);

for(int l=0; l<4; l++)
    {
        pairs[l] = new TextView(context);
        pairs[l].setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
        pairs[l].setLayoutParams(lp);
        pairs[l].setId(l);
        pairs[l].setText("asd");
        myLayout.addView(pairs[l]);
    }

现在我想将此属性设置为所有TextView:

  • FontFamily:草书
  • SetTextSize不是sp而是dp(已解决)
  • SetGravity:central_horizo​​ntal(已解决)

我以编程方式创建TextView时找不到设置这些属性的方法,我该怎么做?

3 个答案:

答案 0 :(得分:2)

dp中的文字大小可以使用setTextSize(TypedValue.COMPLEX_UNIT_DIP, <float>)设置 - 请参阅文档[此处](https://developer.android.com/reference/android/widget/TextView.html#setTextSize(int,浮动))。

至于字体系列,我担心我不知道 - 希望其他人可以帮助你:)

答案 1 :(得分:1)

要更改TextView的字体系列,请使用setTypeface

例如:

Typeface tf = Typeface.create("cursive", Typeface.NORMAL);
for(int l=0; l<4; l++)
{
    pairs[l] = new TextView(context);
    pairs[l].setTypeface(tf);
    ...
}

此外,这可能会引起关注:How to change fontFamily of TextView in Android

答案 2 :(得分:0)

您可以使用Typeface对象设置字体。

TextView tv = new TextView(context);
Typeface face = Typeface.createFromAsset(getAssets(),
       "fonts/filename.ttf");
tv.setTypeface(face);

将字体放在项目的assets文件夹中。