icono de mostrar en la barra de acciones / barra de herramientas con AppCompat-v7 21

Intenté esto, pero aún no veo el ícono como antes:

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

Parece que funciona cuando uso la barra de herramientas personalizada, pero eso me obligaría a tocar todos los diseños. ¿Hay alguna forma mejor de hacerlo?

 getSupportActionBar().setDisplayShowHomeEnabled(true); 

junto con

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

En las interfaces de usuario de Android modernas, los desarrolladores deberían apoyarse más en un esquema de colores visualmente distinto para las barras de herramientas que en su icono de aplicación. El uso del icono de la aplicación más el título como diseño estándar no se recomienda en los dispositivos con API 21 o posteriores.

Si no está de acuerdo, puede intentar con:

Para crear la barra de herramientas en XML:

  

En tu actividad:

 @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); } 

Use el método setLogo () para establecer el icono. Fuente del código

Esto funcionó para mí:

  getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setDisplayUseLogoEnabled(true); getSupportActionBar().setLogo(R.drawable.ic_logo); getSupportActionBar().setDisplayShowTitleEnabled(false); //optional 

tanto como:

  getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setIcon(R.drawable.ic_logo); //also displays wide logo getSupportActionBar().setDisplayShowTitleEnabled(false); //optional 

lo más simple que se puede hacer; solo agrega:

 app:navigationIcon="@drawable/ic_action_navigation_menu"> 

a la etiqueta

donde @drawable/ic_action_navigation_menu es el nombre del icono

Una mejor forma de configurar múltiples opciones:

setIcon/setLogo método setIcon/setLogo solo funcionará si ha configurado DisplayOptions. Pruebe esto:

 actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE); actionBar.setIcon(R.drawable.ic_launcher); 

También puede establecer opciones para mostrar LOGO (simplemente agregue la constante ActionBar.DISPLAY_USE_LOGO ). Más información – displayOptions

Intenta usar:

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

si desea configurar el icono de inicio o posterior (no el logotipo o el icono estático) para que pueda usar

  getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeAsUpIndicator( getResources().getDrawable(R.drawable.home) ); 
 getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setIcon(R.drawable.ic_launcher); 

O haga un diseño XML llame al tool_bar.xml

       

Ahora en tu actividad principal agrega esta línea

   

Prueba esto:

 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); 

para icono estático

Para la barra de acciones:

 getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_action_back); 

Para la barra de herramientas:

 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 no desea configurar su barra de herramientas como barra de acciones usando setSupportActionBar , puede agregar un logotipo al lado de su icono de navegación (si tiene un botón para retroceder, por ejemplo) como este:

 toolbar.setLogo(); 

o en xml

  

E incluso si tiene un título establecido en la barra de herramientas, el título seguirá apareciendo.

Ejemplo: la marca verde en la imagen a continuación es el logotipo

Barra de herramientas con ícono de navegación, logotipo y título

En Xamarin.Android puedes usar estos:

 SupportActionBar.SetHomeButtonEnabled(true); SupportActionBar.SetDisplayShowHomeEnabled(true); SupportActionBar.SetDisplayUseLogoEnabled(true); SupportActionBar.SetIcon(Resource.Drawable.ic_launcher); SupportActionBar.SetDisplayShowTitleEnabled(false); 

se requiere el uso de Android.Support.V7.App.AppCompatActivity.

Prueba esto. Para mí funcionó

 getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayUseLogoEnabled(true); 

En Kotlin, hice lo siguiente para mostrar el ícono:

 supportActionBar?.setDisplayShowHomeEnabled(true) supportActionBar?.setIcon(R.drawable.ic_icon_small)