我想在我的工具栏中添加一个徽标,其中包含来自https://github.com/amulyakhare/TextDrawable的自定义绘图。
但此代码不显示任何内容
TextDrawable drawable = TextDrawable.builder()
.buildRound("A", Color.RED);
getSupportActionBar().setLogo(drawable);
但是,如果我尝试使用“普通”绘图,它就可以了。
getSupportActionBar().setLogo(R.drawable.ic_launcher);
提前致谢
答案 0 :(得分:1)
编辑: Mike M.评论中添加的解决方案效果很好,但看起来很糟糕:
以下是此解决方案的代码:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
TextDrawable drawable = TextDrawable.builder().beginConfig().width(40).height(40).endConfig()
.buildRound("A", Color.RED);
toolbar.setLogo(drawable);
注意:在此解决方案中,您需要设置
width()
徽标的height()
和TextDrawable
,因为它具有默认值-1
。没有它,你将看不到你的TextDrawable
图标。这是因为
Toolbar
类使用logo
参数动态创建wrap_content
。
TextDrawable
需要ImageView
的宽度和高度,所以请不要使用wrap_content
值,否则会获得默认-1
值,您将看不到你的形象。而不是设置硬编码值,如下面的示例所示,
match_parent
或使用layout_weight
来设置您想要的TextDrawable
的大小。
action_bar.xml
加入此代码
<ImageView
android:id="@+id/image_view"
android:layout_width="32dp"
android:layout_height="32dp"
tools:src="@mipmap/ic_launcher"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:text="@string/app_name"
android:textColor="#ffffff"
android:textSize="24sp"
android:textAlignment="gravity"
android:gravity="center_vertical"/>
在onCreate
类中添加此MainActivity
方法代码:
//SET A DRAWABLE TO IMAGEVIEW
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
getSupportActionBar().setCustomView(R.layout.actionbar_main);
TextDrawable drawable = TextDrawable.builder()
.buildRound("A", getResources().getColor(R.color.colorAccent));
ImageView imageView = (ImageView) findViewById(R.id.image_view);
imageView.setImageDrawable(drawable);
更改后应如下所示:
希望有所帮助