tutorial studio opciones entre diferencias developer create barra bar atributos actionbar acciones android android-actionbar center graphical-logo

android - studio - Logotipo de ActionBar centrado y Elementos de acción en los lados



diferencias entre actionbar y toolbar (1)

Como noté en un comentario, no estoy exactamente seguro si algo de esto cambiaría con ABS (estoy seguro que no mucho), pero con la barra de acción estándar puede cargar un .xml de diseño personalizado para el título de la barra de acciones. Por ejemplo, podría tener action_bar_title.xml:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/your_desired_background" > <TextView android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:maxLines="1" android:ellipsize="end" android:text="@string/app_name" android:textAppearance="?android:attr/textAppearanceMedium"/> </RelativeLayout>

Luego, en tu Actividad, deberías llamar a un método como este en onCreate ():

private void setupActionBar() { ActionBar ab = getActionBar(); ab.setDisplayShowCustomEnabled(true); ab.setDisplayShowTitleEnabled(false); ab.setIcon(R.drawable.your_left_action_icon); LayoutInflater inflator = (LayoutInflater) this .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View v = inflator.inflate(R.layout.action_bar_title, null); TextView titleTV = (TextView) v.findViewById(R.id.title); Typeface font = Typeface.createFromAsset(getAssets(), "fonts/your_custom_font.ttf"); titleTV.setTypeface(font); ab.setCustomView(v); ab.setHomeAsUpEnabled(true); }

Para tomar el control del elemento de acción izquierdo, puede hacer esto en su Actividad:

@Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.yourRightActionItem: //do something return true; case android.R.id.home: //<-- this will be your left action item // do something return true; default: return super.onOptionsItemSelected(item); } }

Por supuesto, asegúrese de hacer también las otras configuraciones necesarias para los elementos de acción en los xml de su menú también. Esto será para cualquier elemento de acción del lado derecho.

Editar: Acabo de ver en otro comentario que dijiste que el título sería una imagen. Si ese es el caso, simplemente reemplace el TextView que utilicé en mi ejemplo con su ImageView, y descarte el código de personalización de la fuente en el método setupActionBar ().

Edit2: actualicé mi código de Java. Tendrá que hacer ab.setHomeAsUpEnabled (true) y luego tener un tema personalizado para implementar un invisible (o tal vez @null aunque no sé si Android lo aceptará) dibujable para el inicio como indicador ascendente. Mira aquí (tomado de la respuesta here :)

<style name="Theme.MyFancyTheme" parent="android:Theme.Holo"> <item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item> <!-- or you could try @null --> </style>

¿Cómo podría hacer que una barra de acciones tenga un logotipo en el centro y dos elementos de acción en lados como este?

Utilizaré ActionBar Sherlock.