Effet Parallax dans le ViewPager d'Android

J'essaie d'imiter un effet de parallaxe lorsque je glisse dans mes fragments, j'ai lu sur beginFakeDrag et fakeDragBy mais pour être honnête, je ne sais même pas si c'est la meilleure approche de mon problème.

Quelqu'un a fait quelque chose de similaire avec le ViewPager ou avoir un indice sur la façon dont je devrais aborder cela?

  • Comment regrouper les notifications Android comme whatsapp?
  • Auditeur (ou gestionnaire) pour la fin de la vidéo
  • Dans la facturation d'application ne fonctionne pas après la mise à jour - Google Store
  • Comment transférer une valeur d'une activité à une autre dans Android?
  • Comment configurer un Android SeekBar pour être impassible / gelé?
  • Impossible de créer une application Erreur: échec d'exécution pour la tâche ': application: package "packageName" Debug ". > Valeur (73836)> 0x0000ffff
  • Je vous remercie

  • GAE doit appeler l'un des set * BlobStorage () en premier
  • Comment récupérer la version android sdk?
  • Android: quel est le type d'entrée pour le nom d'utilisateur
  • Comment obtenir le jour du mois?
  • La barre d'action Android change la position des menus
  • Je veux jouer une vidéo à partir de mes actifs ou de mon dossier brut
  • 9 Solutions collect form web for “Effet Parallax dans le ViewPager d'Android”

    Cette question est un peu vieille, mais je l'ai trouvé quand j'essayais de faire exactement cela …

    J'ai implémenté ma propre solution, en étendant essentiellement ViewPager et onDraw .

    Vous pouvez trouver tout le code avec un exemple simple ici

    Je sais que c'est un peu vieux, mais regardez cette https://github.com/xgc1986/ParallaxPagerLibrary

    Il ne remplace pas la méthode onDraw, et l'effet non seulement avec les images, il fonctionne avec toutes sortes de vues

     mPager.setPageTransformer(false, new ParallaxTransformer(R.id.parallaxContent)); 

    R.id.paraallaxContent est l'identifiant de la vue que vous voulez avoir cet effet

    À moins que les autres solutions, ne nécessitent aucune structure concrète pour travailler, et est également indépendante de la mise en page

    Démo: youtube

    Un moyen simple de le faire sans utiliser une bibliothèque personnalisée consiste à implémenter ViewPager.PageTransformer

    J'ai créé mes mises en page pour utiliser le même id pour leur élément d'arrière-plan. Pour mon exemple, toutes les images d'arrière-plan utiliseront l' background l'ID

     <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/background" android:src="@drawable/img12" android:scaleType="fitXY"/> 

    Ensuite, lorsque je vais implémenter ViewPager.PageTransformer je peux faire référence à cette image comme ViewPager.PageTransformer :

     public class Transformer implements ViewPager.PageTransformer{ @Override public void transformPage(View page, float position) { if(position >= -1 && position <= 1){ page.findViewById(R.id.background).setTranslationX(-position * page.getWidth() / 2); } else { page.setAlpha(1); } } } 

    Enfin, je affecte mon ViewPager.PageTransformer à mon ViewPager comme ça.

     ViewPager pager = (ViewPager) findViewById(R.id.pager); pager.setPageTransformer(false, new Transformer()); 

    Peut-être que cette bibliothèque peut vous aider:

    https://github.com/garrapeta/ParallaxViewPager

    Vous pouvez jeter un oeil à ceci:

    https://github.com/luxsypher/ParallaxViewPager

    Vous pouvez appliquer un effet de parallaxe sur n'importe quel élément de votre vue et leur donner toute la vitesse différente

    Il s'agit d'une sous-classe ViewPager que j'ai écrite, assez facile à utiliser. Vous n'avez pas besoin de faire quelque chose de différent avec cela, il suffit d'inclure la dépendance et de l'utiliser comme ViewPager standard. Disponible sur GitHub .

    Cette bibliothèque est entièrement personnalisable dans les directions x et y et inclut des effets alpha:

    https://github.com/prolificinteractive/ParallaxPager

    Installation (à partir de v0.7, cochez README pour les mises à jour):

    1. Ajouter en tant que dépendance de Maven Central avec Gradle

    2. Utilisez un ParallaxContainer dans la mise en page XML au lieu de ViewPager

    3. Créez un fichier XML de mise en page pour chaque page (les attributs x / y / alpha peuvent être définis séparément pour chaque objet entrant / sortant de la page)

    4. Il existe quelques lignes copier / coller pour ajouter à onCreate de votre activité

    Parallax planète animation

    Peut-être que cette bibliothèque pourrait être utile: https://github.com/matrixxun/ProductTour ?

    Il utilise "ViewPager.PageTransformer" pour faire bouger les choses différemment à l'intérieur.

    Vous pouvez utiliser Parallax ViewPager Android Library, vous devez implémenter cela, ajoutez simplement une ligne ci-dessous dans build.gradle pour Android Studio.

     allprojects { repositories { ... maven { url 'https://jitpack.io' } } } 

    Et puis ajoutez une dépendance

     dependencies { compile 'com.github.demoNo:ParallaxViewPager:v1.0.0' } 

    Et maintenant, vous pouvez utiliser cette bibliothèque comme ViewPager normal

     <li.yohan.parallax.ParallaxViewPager android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" /> ParallaxViewPager mPager = ((ParallaxViewPager) findViewById(R.id.pager)); mPager.setAdapter(new Adapter()); 

    Vous pouvez voir la démonstration ici

    Vous pouvez définir dans xml:

     android:background="@drawable/background" 

    Ou dans le code

     setBackgroundResource(int resid) setBackground(Drawable background) 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.