2011-04-19 5 views
7

En pocas palabras, quiero escalar la vista, de la misma manera que Android Market lo hace, cuando hace clic en el botón "Más", en el ejemplo 'Descripción'.
que entenderlo, que el Android Market tiene la disposición de la siguiente estructura:Cómo escalar View/ViewGroup - animar el diseño de una manera adecuada?

<FrameLayout 
    android:id="@+id/artists_frame" 
    android:layout_width="fill_parent" 
    android:layout_height="64dip" 
    android:layout_below="@id/something1" 
    android:layout_above="@id/something2" 

    > 

<!-- Some view there, which height >> 64dip --> 

    </FrameLayout> 

lo tanto, he intentado varias animaciones/LayoutAnimations en el FrameLayout (a través de view.setAnimation(), view.setLayoutAnimation() y ScaleAnimation), pero el efecto es siempre lo mismo: la vista se anima, pero su distribución real después de escalar sigue siendo la misma (por lo que la posición de las otras vistas, que dependen de FrameLayout), sigue siendo la misma).

Después de eso, he pensado - cambio en el bucle de la layout_height del FrameLayout dado:

layoutParams = view.getLayoutParams() 
layoutParams.height = scaleTo; 
layout.setLayoutParams(layoutParams); 

tengo que consiguió animar, vista como el mercado, pero el costo (rendimiento !! !) es demasiado alto ...

Entonces, la pregunta es: ¿existe alguna otra forma adecuada de escalar (cambiar, por ejemplo, altura de 50 a 200) la vista/grupo de visualización dada para que la posición de las vistas a continuación la vista de animación también cambia?

+0

He estado tratando de hacer exactamente lo mismo. Aquí está mi intento a medio terminar: https://gist.github.com/947574 Establece parámetros de diseño dentro de una subclase de 'Animación'. El rendimiento parecía estar bien. Hay errores de redimensionamiento, no llegó a terminar, se agotó el presupuesto de tiempo mientras buscaba las peculiaridades. –

+0

También aquí hay una pregunta similar con soluciones similares: http://stackoverflow.com/questions/4946295/android-expand-collapse-animation –

Respuesta

1

Como dice Chet Haase en esta entrada del blog: http://android-developers.blogspot.com/2011/02/animation-in-honeycomb.html

" ... Por último, las animaciones anteriores cambió la apariencia visual de los objetos de destino ... pero no ha cambiado realmente de los objetos mismos .. . "

Como lo que su necesidad es solo visual, en lugar de cambiar la vista LayoutParameters Yo animaría la vista en la parte inferior también con una traducción usando android:fillAfter para ambos.

Cuestiones relacionadas