Actualización: Último patrón de ActionBar (Título):
Para su información, ActionBar se introdujo en el API Nivel 11. ActionBar es una función de ventana en la parte superior de la Actividad que puede mostrar el título de la actividad , los modos de navegación y otros elementos interactivos como la búsqueda.
Recuerdo exactamente cómo personalizar la barra de título y hacerla consistente a través de la aplicación. Entonces puedo hacer una comparación con los días anteriores y puedo enumerar algunas de las ventajas de usar ActionBar:
- Ofrece a sus usuarios una interfaz familiar en todas las aplicaciones que el sistema adapta con gracia para diferentes configuraciones de pantalla.
- Los desarrolladores no necesitan escribir mucho código para mostrar el Título de actividad, los iconos y los modos de navegación porque ActionBar ya está listo con abstracción de nivel superior.
Por ejemplo:
=> Forma normal,
getActionBar().setTitle("Hello world App");
getSupportActionBar().setTitle("Hello world App"); // provide compatibility to all the versions
=> Personalizar barra de acciones,
Por ejemplo:
@Override
public void setActionBar(String heading) {
// TODO Auto-generated method stub
com.actionbarsherlock.app.ActionBar actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.title_bar_gray)));
actionBar.setTitle(heading);
actionBar.show();
}
Estilo de la barra de acción:
ActionBar le proporciona un aspecto básico y familiar, modos de navegación y otras acciones rápidas para realizar. Pero eso no significa que se vea igual en todas las aplicaciones. Puede personalizarlo según su interfaz de usuario y los requisitos de diseño. Solo tiene que definir y escribir estilos y temas.
Lea más en: Estilizar la barra de acción
Y si desea generar estilos para ActionBar, esta herramienta Style Generator puede ayudarlo.
================================================== ===============================
Viejo: días anteriores:
=> Forma normal,
puede cambiar el título de cada pantalla (es decir, actividad) configurando su Android:label
<activity android:name=".Hello_World"
android:label="This is the Hello World Application">
</activity>
=> Personalizado - Título - barra
Pero si desea personalizar la barra de título a su manera, es decir Want to put Image icon and custom-text
, el siguiente código funciona para mí:
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
titlebar.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="400dp"
android:layout_height="fill_parent"
android:orientation="horizontal">
<ImageView android:id="@+id/ImageView01"
android:layout_width="57dp"
android:layout_height="wrap_content"
android:background="@drawable/icon1"/>
<TextView
android:id="@+id/myTitle"
android:text="This is my new title"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:textColor="@color/titletextcolor"
/>
</LinearLayout>
TitleBar.java
public class TitleBar extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final boolean customTitleSupported =
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
if (customTitleSupported) {
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
R.layout.titlebar);
}
final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
if (myTitleText != null) {
myTitleText.setText("NEW TITLE");
// user can also set color using "Color" and then
// "Color value constant"
// myTitleText.setBackgroundColor(Color.GREEN);
}
}
}
strings.xml
El archivo strings.xml se define en la values
carpeta.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, Set_Text_TitleBar!</string>
<string name="app_name">Set_Text_TitleBar</string>
<color name="titlebackgroundcolor">#3232CD</color>
<color name="titletextcolor">#FFFF00</color>
</resources>