4

ActionBarのロゴ、つまり上ボタンを画像ではなくテキストにしようとしています。actionbar.setLogo();ドローアブルリソースのみを受け入れます。でレイアウトを膨らまTextViewせてもうまくいきませんでした。

基本的に、私が達成しようとしているのはこれです:

ここに画像の説明を入力してください

1つ目はAndroid4.2の新しいDeskClockアプリからのもので、2つ目は連絡先アプリからのものです。GitHubでコードを確認しましたが、何も見つかりませんでした。

4

2 に答える 2

5

袖口から:

オプション#1:テキストを(TextViewまたは直接)Bitmap裏打ちされたに描画してからCanvas、にを指定BitmapDrawablesetLogo()ます。

オプション#2:アイコンとロゴを非setCustomView()表示にし、カレット画像とテキストを使用します。

于 2013-01-05T14:43:39.883 に答える
3

これは@CommonsWareのオプション#1の実装であり、完全に機能します。

TextView upTextView = (TextView) getLayoutInflater().inflate(
        R.layout.up_text, null);
upTextView.setText("CITIES");
upTextView.measure(0, 0);
upTextView.layout(0, 0, upTextView.getMeasuredWidth(), 
        upTextView.getMeasuredHeight());
Bitmap bitmap = Bitmap.createBitmap(upTextView.getMeasuredWidth(),
        upTextView.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
upTextView.draw(canvas);
BitmapDrawable bitmapDrawable = new BitmapDrawable(getResources(), bitmap);

R.layout.up_text

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingLeft="4dp"
    android:paddingRight="4dp"
    android:textColor="#f00"
    android:textSize="20sp"
    android:textStyle="bold" />
于 2013-01-05T16:37:28.200 に答える