how display logo on action bar

2019-09-19 01:20发布

问题:

i want to show logo on my action bar activity and i used below code in manifest:

        <activity
            android:name=".CompanyActivity"
            android:icon="@drawable/ic_launcher"
            android:logo="@drawable/ic_launcher"
            android:label="@string/title"
            android:screenOrientation="portrait"
            android:theme="@style/Theme.AppCompat.Light.DarkActionBar" >
        </activity>

and also use both below codes in java, in onCreate method of activity:

getSupportActionBar().setIcon(R.drawable.ic_launcher);

and

ActionBar ab = getSupportActionBar();
ab.setLogo(R.drawable.ic_launcher);

but logo not displayed in action bar. what can i do? tnx a lot

回答1:

Lollipop doesn't show logo by default so set:

 getSupportActionBar().setDisplayShowHomeEnabled(true);
 getSupportActionBar().setLogo(R.drawable.ic_launcher);
 getSupportActionBar().setDisplayUseLogoEnabled(true);


回答2:

If you want to show logo in action bar

In main.xml

 <item 
    android:id="@+id/abc_image"
    android:title="abc"
    android:icon="@drawable/abcImage"
    android:showAsAction="always"/>
<item
    android:id="@+id/bb"
    android:title="second"
    android:icon="@drawable/bbImage"
    app:showAsAction="always"/>

In MainActivity

    getActionBar().setCustomView(R.layout.actionbar);
    getActionBar().setDisplayShowCustomEnabled(true);
    getActionBar().setDisplayUseLogoEnabled(true);
    getActionBar().setDisplayShowHomeEnabled(false);
    getActionBar().setHomeButtonEnabled(true);


回答3:

For targetSDKversion API 21, in your activity's onCreate(...)

setSupportActionBar(your_toolbar); 
getSupportActionBar().setIcon(R.drawable.ic_launcher);

For targetSDKversion lower than API 21, in your AndroidManifest:

<application
    ... ...
    android:logo="@drawable/ic_launcher"
    ... ...

</application>