ObjectAnimator à l'échelle de la propriété rend bg noir?
- Je utiliser ObjectAnimator à l'échelle vers le bas un RelativeLayout :
ObjectAnimator scaleDownX = ObjectAnimator.ofFloat(view, "scaleX", 0.5f);
ObjectAnimator scaleDownY = ObjectAnimator.ofFloat(view, "scaleY", 0.5f);
scaleDownY.setDuration(1000);
AnimatorSet scaleDown = new AnimatorSet();
scaleDown.play(scaleDownX).with(scaleDownY);
scaleDown.start();
Il évolue vers le bas assez bien comme prévu, mais le problème est que la zone autour de petites affichage est noir jusqu'à ce qu'une autre action de l'utilisateur, ce qui est indésirable. Je veux qu'il corresponde à l'arrière-plan de l'échelle de la vue parent. Une idée de comment faire de la zone autour de la place rouge, avoir la bonne couleur immédiatement ?
Mon xml :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:gui="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/bg"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity$DummySectionFragment">
<RelativeLayout
android:id="@+id/res1"
android:layout_width="50dp"
android:layout_height="50dp"
android:tag="res1"
android:background="@android:color/holo_red_dark"
android:layout_alignTop="@+id/res2"
android:layout_alignRight="@+id/include3"
android:layout_marginRight="11dp">
<TextView
android:layout_marginLeft="15dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="res1"
android:id="@+id/res1T"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
</RelativeLayout>
OriginalL'auteur slezadav | 2013-07-29
Vous devez vous connecter pour publier un commentaire.
Il ne peut pas être la solution la plus propre, mais l'ajout de l'animation de mise à jour de l'auditeur et d'invalider le parent peut faire le travail.
L'autre réponse est plus propre et mieux
"scaleX" et "scaleY" peut être remplacé avec Vue.SCALE_X.getName() et la Vue.SCALE_Y.getName()
OriginalL'auteur Michal
La raison pour laquelle la réponse précédente est besoin d'invalider le parent est parce que votre AnimatorSet scaleDown n'a pas de Cible. Vous devez définir la Cible de votre ObjectAnimator est à null et définir la Cible sur la AnimatorSet. Ou une meilleure façon serait d'utiliser le code ci-dessous:
OriginalL'auteur Simon
Comme indiqué dans les commentaires, l'approche pour la création d'un ObjectAnimator est d'utiliser le point de Vue de la statique Propriété objet au lieu de passer la chaîne depuis l'utilisation de la chaîne de valeur implique une réflexion pour le setter et en option pour la lecture, afin de calculer la valeur de départ de l'attribut. Il est disponible à partir de API 14
Une explication complète peut être trouvée dans DevBytes: Propriété D'Animations vidéo par Google ingénieur Chet Haase
OriginalL'auteur Klodian Kambo