2011-08-16 15 views
8

Quiero crear un contador de desplazamiento que se eleve a un ritmo que le doy para una aplicación de Android, siento que no hay un widget de Android que lo haga bien en el SDK y quería tener alguna idea de cómo se debe lograr esto, o incluso mejor un proyecto de código abierto en torno a esta idea.¿Cuál sería un método para crear un contador de números en Android?

ejemplo la foto: Scrolling Counter

+1

+1 También estoy interesado en este tipo de artilugios. – pkk

+0

Entonces, ¿le gustaría tener una animación fluida, borrosa y mostrar números medios, como en el ejemplo de su imagen? –

+0

Ese sería el mejor caso, aunque estoy aprendiendo algo de esto, así que aceptaría algo más básico. –

Respuesta

1

estoy bastante seguro de que este contador particular en su pantalla tiene algunas animaciones cortas (unos 5 o 10 frames) para cada transición de un número al siguiente. Tal vez también hay algo más para mostrar transiciones rápidas sin realmente detenerse en el número particular con más borrosidad.

Así que la tarea principal sería crear los gráficos. Entonces solo se trata de mostrar el marco correcto en el momento correcto.

+0

Este es un gran comienzo, pero no estoy familiarizado en absoluto con gráficos o animaciones. –

5

Esto podría no ser una respuesta perfecta, pero al menos un punto de partida. Descartando la animación y la fantasía en general, puede obtener la mayor parte del camino simplemente decorando un TextView con un elegante XML. Compartiré lo que hice hace unos años para hacer un área de pantalla de aspecto similar para una calculadora de propinas:

Aquí está el XML. Cada dígito individual es un TextView para que pueda cambiarlos individualmente. Estoy mostrando dos aquí, pero obviamente hubo 5 para la captura de pantalla a continuación.

<TextView 
    android:id="@+id/tv1" 
    android:layout_width="60dip" 
    android:layout_height="140dip" 
    android:background="@drawable/gradient" 
    android:textSize="64sp" 
    android:gravity="center" 
    android:typeface="serif" 
    android:textColor="#FFFFFF" 
/> 
<TextView 
    android:id="@+id/tv2" 
    android:layout_width="60dip" 
    android:layout_height="140dip" 
    android:background="@drawable/gradient" 
    android:textSize="64sp" 
    android:gravity="center" 
    android:typeface="serif" 
    android:textColor="#FFFFFF" 
/> 

Y el "estirable/gradiente" He creado como un archivo dibujable separada:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
<stroke android:width="1dip" 
     android:color="#fbbb" 
/> 
<solid android:color="#600000"/> 
<layout_margin android:layout_margin="1dip"/> 
<gradient 
    android:startColor="#000000" 
    android:centerColor="#6D6D6D" 
    android:endColor="#000000" 
    android:angle="270" 
/> 

Aquí está el resultado final (dentro de un LinearLayout):

Number Counter

+0

Esto es asombroso. Además de ver si puedo animar cambios en la vista de texto, podría ser perfecto para mis necesidades. –

+0

Me alegra oírlo. En mi implementación, el usuario podía presionar en la parte superior o inferior de cada TextView para cambiar el número hacia arriba o hacia abajo, así que no necesitaba animaciones. Si los necesita, no estoy seguro de si TextView será el camino a seguir. –

+0

Estoy animando un contador aumentando a un ritmo que el usuario tendría efecto, pero este es un buen comienzo.La animación es necesaria porque parece mucho más limpia que una simple actualización de números. –

2

Además de la respuesta de raggedToad: Puede usar el ViewAnimator clase para agregar animaciones a tu contador. Es fácil de usar Puede ampliarlo, agregar todas las textualizaciones de texto en onCreate(). Implemente un método increment que maneja la operación de incremento. Simplemente llame al showNext para pasar a la vista siguiente.

+0

Gracias por agregar eso. ¡Ahora podría probar eso en mi mostrador de la vieja escuela! :) –

+0

Entonces, ¿podría hacer una tira de números en una imagen, solo mostrar una parte de la imagen en la pantalla y animar la parte mostrar en movimiento y luego repetir la imagen cuando llegue al final? –

1

Hay un proyecto de código abierto que hace exactamente lo que está tratando de hacer. Cheque: http://code.google.com/p/android-wheel/

+0

Esto se ve bastante bien, no lo usaría como un selector, pero debería considerar hacer de este pie mis necesidades –

Cuestiones relacionadas