How to set ActionBar logo to Text (TextView)?

后端 未结 2 1827
余生分开走
余生分开走 2021-01-06 10:12

I\'ve been trying to make the ActionBar logo, or the Up button, a text instead of an image. actionbar.setLogo(); accepts only a drawable resource. Inflating a l

相关标签:
2条回答
  • 2021-01-06 10:40

    Off the cuff:

    Option #1: Draw your text (TextView or directly) on a Bitmap-backed Canvas, and then supply a BitmapDrawable to setLogo().

    Option #2: Hide the icon and logo and use setCustomView() to have your caret image and your text.

    0 讨论(0)
  • 2021-01-06 10:47

    Here is an implementation of @CommonsWare's option #1, works perfectly.

    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" />
    
    0 讨论(0)
提交回复
热议问题