0

ここでは絶対的なAndroid開発の初心者ですので、ご容赦ください。ActionBarのタイトルで2つのことを達成しようとしています。

  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.xmlR.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ますか?そして、テキストを中央に配置するのはどうですか?

XMLからこれを可能にしないことは、Googleにとって恥ずべきことです。これにより、新しい開発者が魅力的なものを作成する可能性がなくなります。

よろしくお願いします。

4

1 に答える 1

1

私が正直に言うと、カスタムを忘れてTextView、XMLでデフォルトのカスタムを使用するだけです。これを1回だけ使用し、カスタムフォントにのみ使用します。

代わりに、次のようなことを行うことができます。

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 に答える