Ist es möglich, das Toolbar-Logo in XML zu setzen? Ich habe das bisher ausprobiert:
1.
<Android.support.v7.widget.Toolbar
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
...
Android:logo="@drawable/my_logo"
/>
2.
<Android.support.v7.widget.Toolbar
xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
...
app:logo="@drawable/my_logo"
/>
BEARBEITEN
Ich verwende die Symbolleiste als Aktionsleiste in meiner AppCompatActivity:
setSupportActionBar(findViewById(R.id.toolbar));
Ich kann das Logo aus dem Code setzen:
((Toolbar) findViewById(R.id.toolbar)).setLogo(R.drawable.my_logo);
Aber ich möchte das Logo entweder aus Layout-XML oder aus Style/Theme-XML setzen.
Ändern Sie sich
app:logo="@drawable/my_logo"
zu
app:navigationIcon="@drawable/my_logo"
UPDATE
Fügen Sie Linearlayout Ihrem XML-Tag in der Symbolleiste hinzu.
<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>
Eigentlich ist das möglich, aber es funktioniert nicht gut mit dem Namen in der Symbolleiste. Sie können ImageView einfach in den Körper der Symbolleiste einfügen, genau wie bei Layout.
<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/>
Besser, wenn Sie dies aus dem Code heraus tun:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
toolbar.setNavigationIcon(R.drawable.my_logo);
Um das Logo-Symbol anzuzeigen, setzen Sie dieses Symbol zur Laufzeit in ActionBar.
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(@drawable/my_logo);
Nur mit 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>
Wenden Sie nun das AppTheme.NoActionBar-Design auf Ihre Aktivität an (und wenn Sie den Titel der Symbolleiste entfernen möchten, verwenden Sie getSupportActionBar ().
<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>
das könnte die Antwort sein:
<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>
In meinem Fall sieht das Ergebnis so aus:
Symbolleiste mit Logo und Navigation
Wenn das Logo aus bestimmten Gründen nicht angezeigt wird, versuchen Sie, ein neues, neues Projekt zu starten. Fügen Sie nur die Attribute layout_width, layout_height, id und logo hinzu. Denken Sie daran, die Werkzeugleiste in onCreate über setActionBar oder setSupportActionBar . Hinzuzufügen. Mit freundlichen Grüßen P.
Fügen Sie in Ihrem Code GetSupportActionBar (). SetLogo (R.drawable.icon);