2010-11-05 23 views
1

J'essaie de faire de l'animation autour de View qui change de taille en raison de setVisible sur son enfant. J'ai Voir comme ça:Animation sur View sizechanged

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_height="wrap_content" 
android:layout_width="fill_parent" 
android:background="@drawable/roundedtable_filled" 
android:layout_margin="8dip" 
android:orientation="vertical"> 
    <TextView 
    android:id="@+id/title" 
    style="@style/appInfoTextBold" 
    android:text="Jakie dane powinna uwzględniać reklamacja?" /> 
    <TextView 
    android:id="@+id/text" 
    style="@style/appInfoText" 
    android:text="Kochasz kino? Z niecierpliwością czekasz na kolejne odcinki swoich ulubionych seriali? Marzysz o przeprowadzce do Hollywood? Jeśli tak, to vod.onet.pl jest serwisem właśnie dla Ciebie." /> 
</LinearLayout> 

Sur titre cliqué je change de Visibilisty texte. Maintenant, j'aimerais avoir une belle animation de la taille croissante de ma vue. Quelle est la bonne façon de faire cela? Peut-être que je ne devrais pas changer la visibilité du texte et à la place essayer de redimensionner la vue dans le fil de sorte qu'il serait plus grand toutes les 40ms ou sth comme ça?

Répondre

0

Vous devriez être capable de créer un ScaleAnimation qui met à l'échelle la vue d'une taille fractionnaire à sa taille maximale. Lancez l'animation en même temps que vous l'avez définie. Vous pouvez également le faire apparaître (AlphaAnimation) de sorte qu'il ne clignote pas à moins que vous n'effectuiez une mise à l'échelle à partir d'une fraction de 0 (ce qui le rendrait invisible car il n'a pas de taille pour commencer). La mise à l'échelle du texte n'a jamais l'air superbe, mais si l'animation est rapide, cela peut suffire.

+0

Merci pour la réponse, j'abandonne cette animation. J'ai essayé sth comme vous et ça marcherait pour un seul objet mais le problème est que cette disposition est item dans listView, donc ce que j'ai c'est qu'après setVisible j'ai une place vide et une animation croissante. C'est exactement ce que vous avez dit sur Google IO sur le cadre d'animation, il suffit de dessiner la vue différemment, d'autres parties de la mise en page ne sont pas au courant. Il y a donc beaucoup de contournement pour changer la taille réelle de ma vue (taille connue pour listView) et la synchroniser avec l'animation. BTW Gr8 présentation sur IO sur le nouveau cadre d'animation. – Mikooos

+0

Le nouveau framework d'animation rend définitivement ce genre de choses plus facile, même si la mise à l'échelle d'une vue (dans l'ancien ou le nouveau système) ne modifierait pas sa taille en ce qui concerne la mise en page. Si vous voulez réellement changer les limites de la mise en page, pensez à animer les valeurs de LayoutParams (plus difficiles dans l'ancien système, puisque toutes les animations sont spécifiques aux vues.) Ou faire l'échelle, puis à la fin, changer la mise en page pour s'adapter à la nouvelle taille de l'objet. Notez également qu'une vue "mise à l'échelle" ne ressemblera pas nécessairement à une vue "redimensionnée". –