0

这里是绝对的Android开发初学者,所以请多多包涵。我试图用我在 ActionBar 中的标题来实现两件事:

  1. 居中对齐标题文本
  2. 为标题文本使用自定义字体

我正在尝试遵循答案,因此请先查看该答案。

MainActivity.java的内容

    // ATTEMPT TO STYLE THE ACTIONBAR
    this.getActionBar().setDisplayShowCustomEnabled(true);
    this.getActionBar().setDisplayShowTitleEnabled(false);

    LayoutInflater inflator = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View v = inflator.inflate(R.layout.titleview, null);

    //if you need to customize anything else about the text, do it here.
    //I'm using a custom TextView with a custom font in my layout xml so all I need to do is set title
    ((TextView)v.findViewById(R.id.title)).setText(this.getTitle());

    //assign the view to the actionbar
    this.getActionBar().setCustomView(v);

我创建了一个新的 XML 文件:layout/titleview.xml对应于R.layout.titleview上面。它包含:

<com.muppethead.app.name.CustomTextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_marginLeft="10dp"
    android:textSize="20dp"
    android:maxLines="1"
    android:ellipsize="end"
    android:text="MY APP TITLE" />

这给出了错误: The following classes could not be found: com.muppethead.app.name.CustomTextView

问题

我哪里错了?除了修复上述错误,我在哪里引用我的字体,它位于assets/fonts/font.otf?那么文本居中呢?

我得说,Google 很遗憾没有通过 XML 实现这一点。它消除了新开发人员创造任何有吸引力的东西的可能性。

在此先感谢您的帮助。

4

1 回答 1

1

老实说,我会忘记 custom TextView,而只使用 XML 中的默认值。您只使用它一次,并且仅用于自定义字体。

你可以这样做:

TextView tv = (TextView) v.findViewById(R.id.title);
Typeface tf = Typeface.createFromFile(getAssets(), "fonts/font.otf");
tv.setTypeface(tf);
tv.setText(this.getTitle());
于 2012-11-07T01:04:07.153 回答