Android animation d'échelle sur la vue
Je veux utiliser ScaleAnimation (par programmation non en xml) pour modifier la hauteur de vue de 0 à 60% des parents de la hauteur. Largeur de vue est constante et est 50px. La vue est vide seulement la couleur d'arrière-plan est définie.
Quelqu'un peut me donner le code pour scaleAnim
à l'aide de ScaleAnimation de code.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/layContainer
>
<View
android:layout_width="50px"
android:layout_height="fill_parent"
android:id="@+id/viewContainer"
android:background:"#00f00"
/>
</LinearLayout>
ScaleAnimation scaleAnim = new ScaleAnimation(...);
vue avant et après l'animation
.Grâce
Vous devez vous connecter pour publier un commentaire.
Voici une capture du code pour faire exactement cela.
La ScaleAnimation constructeur utilisé ici prend 8 args, 4 liées à la manipulation de la X-échelle, nous ne nous soucions pas
(1f, 1f, ... Animation.RELATIVE_TO_SELF, 0f, ...)
.Les 4 autres arguments sont pour le Y-graduation nous nous soucions.
startScale, endScale
- Dans votre cas, vous devriez utiliser0f, 0.6f
.Animation.RELATIVE_TO_SELF, 1f
- Il indique où la diminution de la vue s'effondre à (appelé pivot dans la documentation). Ici, nous avons défini la valeur flottante à1f
parce que nous voulons que l'animation lancer dans la culture de la barre du bas. Si on voulait pousser à la baisse depuis le sommet, nous utiliserions0f
.Enfin, et tout aussi important, est l'appel à
anim.setFillAfter(true)
. Si vous souhaitez que le résultat de l'animation à tenir une fois l'animation terminée, vous devez l'exécuter sur l'animateur avant l'exécution de l'animation.Donc dans votre cas, vous pouvez faire quelque chose comme ceci:
essayer ce code pour créer à l'Échelle de l'animation sans l'aide de xml
(from, to, from, to, Animation.RELATIVE_TO_SELF, (float)0.5, Animation.RELATIVE_TO_SELF, (float)0.5)
est mon problème 🙂En XML, ce que j'ai utiliser pour atteindre le même résultat. Peut-être que c'est plus intuitif.
scale_up.xml
scale_down.xml
Voir l'animation sur l'axe des X est de
1.0 -> 1.0
ce qui signifie que vous n'avez pas de mise à l'échelle dans cette direction et séjours à la pleine largeur, tandis que, sur l'axe Y, vous obtenez0.0 -> 1.0
de mise à l'échelle, comme le montre le graphique de la question. Espérons que cela aide quelqu'un.Certains pourraient vouloir savoir le code java comme nous le voyons celui demandé.
Place les fichiers d'animation dans
anim
dossier et ensuite chargez et fichiers d'animation quelque chose comme.Utiliser cette méthode
Si vous voulez échelle trimestre(la moitié de x,la moitié y)
Si vous voulez échelle et déplacer vers le bas à droite
Si vous voulez vous déplacer à haut utilisation
(-view.height/4)
et pour gauche (-vue.largeur/4)Si vous voulez faire quelque chose de après la fin de l'animation utilisation
withEndAction(Runnable runnable)
fonction.Vous pouvez utiliser une autre propriété comme alpha et rotation
Code complet
Redimensionner à l'aide de méthodes d'aide et start-repeat-end gestionnaires comme ceci:
Méthodes d'aide: