personalizar - ¿Cómo cambio el título y el icono de la barra de acción de Android?
personalizar action bar android studio (15)
Estoy tratando de hacer algunas cosas en la barra de acción en Android.
Ya he agregado nuevos elementos en el lado derecho de la barra de acción.
¿Cómo puedo cambiar el lado izquierdo de la barra de acción? Quiero cambiar el ícono y el texto, y quiero agregar un "Botón Atrás" en la barra de acción para las otras pantallas
Agregue el siguiente código dentro de una función onCreate en su actividad.
setTitle("NewName");
El título de la barra de acción usará, de forma predeterminada, la etiqueta de la actividad actual, pero también puede establecerlo mediante programación a través de ActionBar.setTitle()
.
Para implementar la funcionalidad del botón "Atrás" (más precisamente, "Arriba") de la que está hablando, lea la sección "Uso del icono de la aplicación para la navegación" de la guía del desarrollador de la barra de acción .
Finalmente, para cambiar el ícono, la guía también cubre eso. En resumen, la barra de acción mostrará la imagen suministrada en android:icon
en la application
o elemento de activity
tu manifiesto, si existe. La práctica típica es crear un ícono de aplicación (en todas las diversas densidades que necesitará) llamado ic_launcher.png
, y colocarlo en sus directorios drawable-*
.
En Android 5.0, las pautas de diseño del material desalientan el uso del icono en la barra de acción
para habilitarlo agrega el siguiente código
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setLogo(R.mipmap.ic_launcher);
getSupportActionBar().setDisplayUseLogoEnabled(true);
El crédito es para el autor de este article
Este trabajo para mí:
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeAsUpIndicator(R.mipmap.baseline_dehaze_white_24);
Esto es muy simple de lograr
Si quieres cambiarlo en código, llama:
setTitle("My new title");
getActionBar().setIcon(R.drawable.my_icon);
Y establece los valores a lo que quieras.
O, en el archivo XML manifiesto de Android:
<activity android:name=".MyActivity"
android:icon="@drawable/my_icon"
android:label="My new title" />
Para habilitar el botón de retroceso en su aplicación use:
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
El código debe colocarse en su onCreate
para que el cambio de etiqueta / icono sea transparente para el usuario, pero en realidad se puede llamar a cualquier parte durante el ciclo de vida de la actividad.
Para eso, puedes hacerlo de 2 maneras: XML o Java. Vea aquí: Cómo cambiar el texto en la barra de acción
Asi que:
XML:
<activity android:name=".Hello_World"
android:label="This is the Hello World Application">
</activity>
Java:
public class TitleBar extends Activity {
/** Called when the activity is first created. */
@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);
}
}
}
Para hacer que un solo icono sea utilizable por todas tus barras de acción, puedes hacerlo en tu Manifiesto de Android.
<application
android:logo="@drawable/Image">
...
</application>
Puedes cambiar el ícono en tu agregando el ícono que quieras a tus respectivas carpetas dibujables, luego cambiando esta línea en tu archivo AndroidManifest.xml:
android:icon="@drawable/ic_launcher"
para que coincida con cualquiera que sea el nombre de su icono está allí. O coloca tu icono como ic_launcher, si son el mismo icono. En cuanto a lo que dice, agregue o cambie las cadenas que coincidan con las del archivo res / values / strings.xml. Luego, una vez más en tu archivo AndroidManifest.xml, cambia esta línea:
android:label="@string/app_name"
a cualquiera que sea la cadena que tengas en su. Tendrá que hacer esto para la aplicación en su conjunto, y las actividades que desee, pero las líneas son las mismas.
Espero que esto ayude.
Si desea cambiar el título de la barra de acción, simplemente proporcione el siguiente código de 1 línea en onCreate () de su Actividad
getActionBar().setTitle("Test");
Solo necesitas agregar estas 3 líneas de código. Reemplace el icono con su propio icono. Si quieres generar iconos utiliza this
getSupportActionBar().setHomeAsUpIndicator(R.drawable.icon_back_arrow);
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
Vaya al manifiesto en qué actividad específica desea cambiar el Nombre del título de la barra de acción y escriba android: label = "Nombre del título"
non-static method setTitle(CharSequence) cannot be referenced from a static context
error de non-static method setTitle(CharSequence) cannot be referenced from a static context
porque usé setTitle()
en la clase PlaceholderFragment estática. Lo resolví utilizando getActivity().getActionBar().setTitle("new title");
onNavigationItemSelected
la siguiente llamada en onNavigationItemSelected
:
HomeActivity.this.setTitle(item.getTitle());
Para el título del set :
getActionBar().setTitle("Title");
Para el icono de conjunto :
getActionBar().setIcon(R.drawable.YOUR_ICON_NAME);
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle(getString(R.string.titolo));
actionBar.setIcon(R.mipmap.ic_launcher);
actionBar.setDisplayShowHomeEnabled(true);