Establecer el logotipo de la barra de herramientas en XML
¿Es posible establecer el logotipo de la barra de herramientas en xml? He intentado esto hasta ahora:
1.
- Android: Qué práctica es mejor para usar CoordinatorLayout
- Animación como cambiar cuentas en la aplicación de Gmail
- ¿Cuándo se encuentra la barra de progreso indeterminada en Android Support Library
- Cómo utilizar el diseño de material en la aplicación de Android?
- CoordinatorLayout no dibuja detrás de la barra de estado incluso con windowTranslucentStatus y fitsSystemWindows
<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" />
EDITAR
Estoy usando la barra de herramientas como una barra de acción en mi AppCompatActivity:
setSupportActionBar(findViewById(R.id.toolbar));
Soy capaz de establecer el logotipo de código:
((Toolbar) findViewById(R.id.toolbar)).setLogo(R.drawable.my_logo);
Pero me gustaría establecer el logo de XML de diseño o XML de estilo / tema.
- Diseño de material que no diseña diálogos de alerta
- Expanda CardView dentro de RecyclerView como nueva actividad como Inbox de Google Android
- Error: (2, 0) Plugin con id 'com.github.dcendents.android-maven' no encontrado
- El título de la barra de aplicaciones no se muestra en android 5.0 y superior
- Hoja de parte inferior en Android
- ¿Es posible alinear a la izquierda SearchView en AppCompat 21 con la barra de herramientas?
- Android colorControlNormal atributos xml no funciona antes de Lollipop
- Crear Revelación Circular para Dispositivos Pre-Lollipop
En realidad se puede, pero no funcionará bien con el nombre en la barra de herramientas. Simplemente puede poner ImageView en el cuerpo de la barra de herramientas, como lo hace con 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/>
Mejor si usted hará esto desde el código:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); toolbar.setNavigationIcon(R.drawable.my_logo);
Hacer cambio
app:logo="@drawable/my_logo"
a
app:navigationIcon="@drawable/my_logo"
ACTUALIZAR
Añadir Linearlayout en su barra de herramientas xml tag.
<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>
Para mostrar el icono de logotipo, establezca este icono en Runtime en ActionBar.
getSupportActionBar().setDisplayShowHomeEnabled(true); getSupportActionBar().setIcon(@drawable/my_logo);
Esta podría ser la respuesta:
<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>
En mi caso el resultado se parece a esto:
Barra de herramientas con logotipo y navegación
Si por alguna razón no aparece el logo, entonces intenta iniciar un nuevo proyecto, agrega sólo los atributos layout_width, layout_height, id y logo. Recuerde agregar la barra de herramientas en onCreate a través de setActionBar o setSupportActionBar. Saludos, P.
Uso de xml solamente
<!-- 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>
A continuación, aplique el tema AppTheme.NoActionBar a su actividad (y si desea eliminar el título de la barra de herramientas use getSupportActionBar (). SetDisplayShowTitleEnabled (false), después de setSupportActionBar (barra de herramientas);)
<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>
- ¿Cómo mostrar varias líneas de texto con desplazamiento en android?
- Abortar / Cancelar transmisiones