带复合drawable的ActionBar标题

时间:2014-04-02 09:02:26

标签: android android-actionbar-compat spannable

是否可以在不使用自定义视图的情况下向标准操作栏标题添加复合drawable(类似于drawableLeft)?

我正在使用SpannableString作为标题(为了使用自定义字体)。如果我无法设置一个compund drawable,那么可以使用我可以附加到我的SpannableString的ImageSpan吗?

THX

2 个答案:

答案 0 :(得分:1)

是的,绝对的。这是一个简单的例子:

    final int abTitleId = getResources().getIdentifier("action_bar_title", "id", "android");
    final TextView abTitle = (TextView) findViewById(abTitleId);
    abTitle.setCompoundDrawablesWithIntrinsicBounds(R.drawable.your_icon, 0, 0, 0);

答案 1 :(得分:0)

感谢adneal的回答,但它不适用于android棒棒糖,我根据他的方法找到了解决方案。它缺乏标准化,但效果很好。

ViewGroup actionViewGroup = (ViewGroup) findViewById(getResources().getIdentifier("action_bar", "id", "android"));
if (actionViewGroup != null && actionViewGroup.getChildCount() > 0) {
    View view = actionViewGroup.getChildAt(0);
    if (view instanceof TextView) {
        TextView tv = (TextView) view;
            tv.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_test, 0, 0, 0);
    }
}