J'ai essayé ces - mais ne vois toujours pas l'icône comme avant:
getSupportActionBar().setLogo(R.drawable.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_launcher);
Cela semble fonctionner lorsque j'utilise une barre d'outils personnalisée - mais cela me forcerait à toucher toutes les dispositions - y a-t-il une meilleure façon de le faire?
getSupportActionBar().setDisplayShowHomeEnabled(true);
de même que
getSupportActionBar().setIcon(R.drawable.ic_launcher);
Dans les interfaces utilisateur Android modernes, les développeurs devraient s’appuyer davantage sur un visuel palette de couleurs distincte pour les barres d'outils que sur leur icône d'application. Le L'utilisation de l'icône de l'application et du titre comme modèle standard est déconseillée sur les appareils API 21 et plus récents.
Si vous n'êtes pas d'accord, vous pouvez essayer avec:
Pour créer la barre d'outils en XML:
<Android.support.v7.widget.Toolbar
Android:id="@+id/my_awesome_toolbar"
Android:layout_height="wrap_content"
Android:layout_width="match_parent"
Android:minHeight="?attr/actionBarSize"
Android:background="?attr/colorPrimary" />
Dans votre activité:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_layout);
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
setSupportActionBar(toolbar);
}
Utilisez la méthode setLogo () pour définir l’icône . Code source.
Cela a fonctionné pour moi:
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayUseLogoEnabled(true);
getSupportActionBar().setLogo(R.drawable.ic_logo);
getSupportActionBar().setDisplayShowTitleEnabled(false); //optional
aussi bien que:
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_logo); //also displays wide logo
getSupportActionBar().setDisplayShowTitleEnabled(false); //optional
chose la plus simple à faire; il suffit d'ajouter:
app:navigationIcon="@drawable/ic_action_navigation_menu">
à la balise <Android.support.v7.widget.Toolbar
où @drawable/ic_action_navigation_menu
est le nom de l'icône
Un meilleur moyen de définir plusieurs options:
La méthode setIcon/setLogo
ne fonctionnera que si vous avez défini DisplayOptions Essayez ceci -
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
actionBar.setIcon(R.drawable.ic_launcher);
Vous pouvez également définir des options pour afficher LOGO (ajoutez simplement ActionBar.DISPLAY_USE_LOGO
constant). Plus d'informations - displayOptions
Essayez d'utiliser:
ActionBar ab = getSupportActionBar();
ab.setHomeButtonEnabled(true);
ab.setDisplayUseLogoEnabled(true);
ab.setLogo(R.drawable.ic_launcher);
si vous souhaitez définir l’icône home ou back (pas le logo ou l’icône statique)
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator( getResources().getDrawable(R.drawable.home) );
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_launcher);
OUfaire une mise en page XML appeler le tool_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:background="@color/colorPrimary"
Android:theme="@style/ThemeOverlay.AppCompat.Dark"
Android:elevation="4dp">
<RelativeLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:orientation="horizontal">
<ImageButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:background="@color/colorPrimary"
Android:src="@drawable/ic_action_search"/>
</RelativeLayout>
</Android.support.v7.widget.Toolbar>
Maintenant, dans votre activité principale, ajoutez cette ligne
<include
Android:id="@+id/tool_bar"
layout="@layout/tool_bar" />
Essaye ça:
import Android.support.v7.app.ActionBar;
import Android.support.v7.app.AppCompatActivity;
...
ActionBar actionbar = getSupportActionBar();
actionbar.setDisplayHomeAsUpEnabled(true);
actionbar.setHomeAsUpIndicator(R.drawable.ic_launcher);
so your icon will be used for Home / back
or
import Android.support.v7.app.ActionBar;
import Android.support.v7.app.AppCompatActivity;
...
ActionBar actionbar = getSupportActionBar();
actionbar.setDisplayShowHomeEnabled(true);
actionbar.setIcon(R.drawable.ic_launcher);
pour l'icône statique
Pour Actionbar:
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeAsUpIndicator(R.drawable.ic_action_back);
Pour la barre d'outils:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_back);
toolbar.setLogo(resize(logo, (int) Float.parseFloat(mContext.getResources().getDimension(R.dimen._120sdp) + ""), (int) Float.parseFloat(mContext.getResources().getDimension(R.dimen._35sdp) + "")));
public Drawable resize(Drawable image, int width, int height)
{
Bitmap b = ((BitmapDrawable) image).getBitmap();
Bitmap bitmapResized = Bitmap.createScaledBitmap(b, width, height, false);
return new BitmapDrawable(getResources(), bitmapResized);
}
Si vous ne souhaitez pas définir votre barre d'outils en tant que barre d'action à l'aide de setSupportActionBar, vous pouvez ajouter un logo à côté de votre icône de navigation (si vous avez un bouton de retour, par exemple), comme ceci:
toolbar.setLogo();
ou en xml
<Android.support.v7.widget.Toolbar
....
Android:logo="@drawable/logo"
app:logo="@drawable/logo"/>
Et même si vous avez un titre défini sur la barre d’outils, le titre sera toujours affiché.
Ex: le coche vert dans l'image ci-dessous est le logo
Essaye ça. Pour moi cela a fonctionné
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayUseLogoEnabled(true);
À Kotlin, j’ai fait ce qui suit pour montrer simplement l’icône:
supportActionBar?.setDisplayShowHomeEnabled(true)
supportActionBar?.setIcon(R.drawable.ic_icon_small)
Dans Xamarin.Android, vous pouvez utiliser ceux-ci:
SupportActionBar.SetHomeButtonEnabled(true);
SupportActionBar.SetDisplayShowHomeEnabled(true);
SupportActionBar.SetDisplayUseLogoEnabled(true);
SupportActionBar.SetIcon(Resource.Drawable.ic_launcher);
SupportActionBar.SetDisplayShowTitleEnabled(false);
utiliser Android.Support.V7.App.AppCompatActivity est requis.