4

我一直在尝试将 ActionBar 徽标或向上按钮设置为文本而不是图像。actionbar.setLogo();仅接受可绘制资源。用 a 膨胀布局TextView并没有奏效。

基本上,我想要完成的是:

在此处输入图像描述

第一个来自 Android 4.2 的新 DeskClock 应用,第二个来自 Contacts 应用。我检查了 GitHub 中的代码,但我找不到任何东西。

4

2 回答 2

5

袖口:

选项 #1:在-backed上(TextView或直接)绘制文本,然后提供to 。BitmapCanvasBitmapDrawablesetLogo()

选项 #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 回答