2010-08-21 18 views
7

Me preguntaba si había alguna manera de mostrar un título personalizado con mi propio dibujo - y luego poner una barra de progreso en el diseño del título para que funcione como el progreso de Android incorporado bar.Barra de título personalizado con progreso en Android

En mi código, deseo poder llamar al setProgressBarIndeterminateVisibility(true) y hacer que muestre la barra de progreso en mi barra de título personalizada.

¿Esto es posible?

He configurado el tema de mi aplicación para que use un título personalizado, pero no sé cómo ni dónde colocar la barra de progreso en ese diseño.

Gracias de antemano.

EDIT: Ahora uso mi propio tema que se ve algo como esto:

<style parent="android:Theme.Light.NoTitleBar" name="BaseTheme"> 
    <item name="android:windowBackground">@drawable/splash_bg</item> 
    <item name="android:windowTitleStyle">@style/TitleBackground</item> 
</style> 

Con el estilo del fondo del título como:

<style name="TitleBackground" parent="android:WindowTitleBackground"> 
    <item name="android:background">@drawable/title_bar</item> 
</style> 

Para dar a todos una mejor idea - algo así como esta. alt text

+0

Si se puede reemplazar esta llamada con otro, haría que el trabajo para usted? ya que nunca puede tener CUSTOM_TITLE con ninguna otra función de título. – MahdeTo

+0

Quiero decir que podría hacer mi propio diseño y usar el '' para incluir mi título en cada pantalla, pero como no puedo anular el método en cuestión, tendré que hacer un método diferente para mostrar y ocultar mi propia barra de progreso - y luego poner eso en cada actividad. Bueno, ahora que lo pienso, podría ponerlo en una clase y llamar a esa clase, pero aún hay más trabajo de lo que me gustaría hacer :). – hwrdprkns

Respuesta

3

Creo que la única forma de hacerlo es usar su propia barra de título personalizada. Usted PODRÍA anular el código de Android desde su código abierto, pero podría ser una mala idea. Lo mejor que puedes hacer es crear un diseño de barra de título y solo <include /> en todos los otros diseños y tal vez tener una clase de ayuda para mostrar y ocultar la barra de progreso.

4

Aquí es un gran ejemplo de cómo implementar una barra de título personalizado con un indicador de progreso:

http://downloadandroid.info/2010/08/creating-a-custom-titlebar/

Mi solución es tener una clase ActivityHelper que se extiende Actividad e incluye este método, así como una para activar o desactivar la barra de progreso, luego extender esa clase desde cada una de mis actividades.

12

Añadir este código en onCreate antes de cualquier otro código:

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
requestWindowFeature(Window.FEATURE_PROGRESS); 

setProgress(xx); // Then use this to update the progress to xx amount 

Para activar/desactivar el uso

setProgressBarIndeterminateVisibility(false); //true to turn on. 

He utilizado este en una actividad de inicio de sesión, mi problema es que la mayoría corro del inicio de sesión asíncrono, por lo que tengo problemas para actualizar la interfaz de usuario. Pero obtengo la animación de progreso circular para mostrar.

Tengo esto trabajando en una TabActivity que se actualiza desde una llamada asincrónica dentro de un Intento de Actividad iniciado por la TabActivity. Tuve que poner las líneas "requestWind ...." tanto en TabActivity como en la actividad llamada. También he encontrado que el uso de setProgress no estaba haciendo mucho, pero la animación del spinner estaba "girando" todo el tiempo, así que estoy contento.

+0

No funciona en HTc desire y HTc wilrfire 2.2.2 – ozmank

Cuestiones relacionadas