Connexion et animation de bases de données Android

Quelqu'un peut-il me diriger vers la façon de déclencher une animation lors de l'utilisation de la liaison de données?

J'ai une icône qui change selon les données de mon modèle de vision. Comment animer l'icône change-t-il lorsque le modèle de vision change (c'est-à-dire lorsqu'une propriété change dans le modèle de vue)?

  • Drawback de MVP sur le modèle de conception MVVM dans Android
  • Quels sont les avantages et les inconvénients de la liaison avec les données Android?
  • Mise en œuvre correcte de MVVM dans Android
  • Android inclut la mise en page de manière dynamique avec la bibliothèque de liaison de données
  • Comment utiliser le motif Android MVVM avec des fragments?
  • AndroidViewModel vs ViewModel
  • Comment puis-je effectivement mettre en œuvre le modèle de conception MVVM pour mon application Android qui facilitera également l'écriture des cas de test?
  • Comment puis-je utiliser SharedPreferences en dehors d'une activité?
  • One Solution collect form web for “Connexion et animation de bases de données Android”

    Une solution possible consiste à utiliser un adaptateur de liaison. Voici un échantillon rapide pour vous montrer le chemin à parcourir:

    Nous définissons d'abord un adaptateur de liaison personnalisé:

    import android.databinding.BindingAdapter; import android.support.v4.view.animation.FastOutSlowInInterpolator; import android.view.View; import android.view.animation.Animation; import android.view.animation.Interpolator; import android.view.animation.RotateAnimation; import android.view.animation.TranslateAnimation; public class ViewBusyBindings { private static final Interpolator INTERPOLATOR = new FastOutSlowInInterpolator(); @BindingAdapter("isBusy") public static void setIsBusy(View view, boolean isBusy) { Animation animation = view.getAnimation(); if (isBusy && animation == null) { view.startAnimation(getAnimation()); } else if (animation != null) { animation.cancel(); view.setAnimation(null); } } private static Animation getAnimation() { RotateAnimation anim = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); anim.setInterpolator(INTERPOLATOR); anim.setDuration(1400); anim.setRepeatCount(TranslateAnimation.INFINITE); anim.setRepeatMode(TranslateAnimation.RESTART); return anim; } } 

    La disposition des exemples ressemblera à ceci:

     <?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <data> <variable name="vm" type="de.example.exampleviewmodel"/> </data> <FrameLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <ImageButton android:id="@+id/btnPlay" style="?attr/borderlessButtonStyle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|bottom" android:src="@drawable/ic_play_circle_filled_white_36dp" app:isBusy="@{vm.isBusy}"/> </FrameLayout> </layout> 

    Comme vous pouvez le voir, la propriété 'isBusy' de votre viemodel est liée à la vue (imagebutton). Vous pouvez utiliser cet adaptateur à n'importe quelle vue non seulement sur un bouton d'image.

    Bien sûr, la propriété 'isBusy' doit être liable (par exemple, votre modèle de vision étend le BaseObservable ou, au minimum, c'est un ObservableBoolean).

    Donc, chaque fois que vous modifiez la propriété 'isBusy' sur true, elle déclenchera l'animation. Réglez-le sur faux, il s'arrête.

    J'espère que cela t'aides ?

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.