Android 在XML中设置工具栏徽标
可以用xml设置工具栏徽标吗?到目前为止,我已经尝试过: 一, 我可以从以下代码设置徽标:Android 在XML中设置工具栏徽标,android,android-layout,material-design,android-toolbar,Android,Android Layout,Material Design,Android Toolbar,可以用xml设置工具栏徽标吗?到目前为止,我已经尝试过: 一, 我可以从以下代码设置徽标: ((Toolbar) findViewById(R.id.toolbar)).setLogo(R.drawable.my_logo); 但我想从布局XML或样式/主题XML设置徽标。要显示徽标图标,请在运行时在ActionBar中设置此图标 getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setIc
((Toolbar) findViewById(R.id.toolbar)).setLogo(R.drawable.my_logo);
但我想从布局XML或样式/主题XML设置徽标。要显示徽标图标,请在运行时在ActionBar中设置此图标
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(@drawable/my_logo);
实际上,您可以,但它不能很好地与工具栏上的名称配合使用。您只需将ImageView放入工具栏的主体中,就像使用布局一样
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
app:logo="@drawable/my_logo"/>
<android.support.v7.widget.Toolbar/>
改变
app:logo="@drawable/my_logo"
到
更新
将Linearlayout添加到工具栏xml标记中
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/grey">
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/media_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:contentDescription="new post image"
android:scaleType="centerCrop"
android:visibility="visible" />
<TextView
android:id="@+id/toolbar_subtitle"
android:textSize="14sp"
android:layout_gravity="center"
android:textColor="@color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.v7.widget.Toolbar>
答案可能是:
<Toolbar
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:id="@+id/atc_toolbar"
android:background="?android:attr/colorPrimaryDark"
android:elevation="4dp"
android:navigationIcon="@android:drawable/ic_menu_compass"
android:logo="@android:drawable/ic_menu_view"
android:title="My application">
</Toolbar>
在我的例子中,结果如下所示:
如果由于某些原因,徽标未显示,则尝试开始一个新的、全新的项目,只添加布局宽度、布局高度、id和徽标属性。记住通过setActionBar或setSupportActionBar在onCreate中添加工具栏。
当做
P.仅使用xml
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="ActionbarLogo">
<item name="android:logo">@drawable/ic_menu_camera</item>
<item name="android:displayOptions">useLogo</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="android:actionBarStyle">@style/ActionbarLogo</item>
<item name="windowNoTitle">true</item>
</style>
@颜色/原色
@颜色/原色暗
@颜色/颜色重音
@可绘图/ic\U菜单\U摄像头
useLogo
假的
@款式/ActionBar标志
真的
现在将AppTheme.NoActionBar主题应用于您的活动(如果要删除工具栏标题,请使用getSupportActionBar().setDisplayShowTitleEnabled(false);在setSupportActionBar(工具栏)之后;)
在您的代码中放入
getSupportActionBar().setLogo(R.drawable.icon);
它会起作用的这解决了我的问题。在布局文件夹中创建此文件:
在activity.java中执行此操作:
Toolbar-Toolbar=(Toolbar)findviewbyd(R.id.Toolbar);
设置支持操作栏(工具栏);
工具栏.setNavigationIcon(R.drawable.my_徽标);
在activity.xml中
我感兴趣的是从XML(布局或样式)来做这件事。我不感兴趣的是自定义导航图标(“备份/备份按钮”),而是自定义徽标(位于导航图标右侧)。谢谢,但我想设置标准徽标,而不是引入自定义子项(ren)。我认为通过自定义,您可以实现所需的输出,让我知道是否可以使用任何工具栏xml属性。谢谢,但我想设置标准徽标,而不是引入自定义子项。他显然要求的是xml方式,而不是Java代码。您的代码1。代码2。完全相同,app:logo=“@drawable/my_logo”确实在我的工具栏中设置了一个徽标。@SunilKumar它们不一样——第一个使用的是android:logo
,第二个--app:logo
哦,对不起。我还得出结论,如果我们想在工具栏上放置徽标,就不应该使用工具栏。工具栏不提供任何自定义徽标大小和位置的方法。@SunilKumar我相信它只允许自定义内部布局,正如建议的那样。
app:logo="@drawable/my_logo"
app:navigationIcon="@drawable/my_logo"
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/grey">
<LinearLayout
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/media_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:contentDescription="new post image"
android:scaleType="centerCrop"
android:visibility="visible" />
<TextView
android:id="@+id/toolbar_subtitle"
android:textSize="14sp"
android:layout_gravity="center"
android:textColor="@color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</android.support.v7.widget.Toolbar>
<Toolbar
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:id="@+id/atc_toolbar"
android:background="?android:attr/colorPrimaryDark"
android:elevation="4dp"
android:navigationIcon="@android:drawable/ic_menu_compass"
android:logo="@android:drawable/ic_menu_view"
android:title="My application">
</Toolbar>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="ActionbarLogo">
<item name="android:logo">@drawable/ic_menu_camera</item>
<item name="android:displayOptions">useLogo</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="android:actionBarStyle">@style/ActionbarLogo</item>
<item name="windowNoTitle">true</item>
</style>
<activity
android:name=".MainActivity"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>