# Paralloid **Repository Path**: mirrors_Shopify/Paralloid ## Basic Information - **Project Name**: Paralloid - **Description**: Paralloid - (Pah-rah-loid) The Android Parallax library. - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-28 - **Last Updated**: 2026-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README Paralloid ========= Paralloid - (Pah-rah-loid) The Android Parallax library Compatible back to API 7 An example application, [Paralloid Library Example](https://play.google.com/store/apps/details?id=uk.co.chrisjenx.paralloidexample&hl=en), can be downloaded from the Play Store. ParallaxScrollView is dead.. ---------------------------- I originally wrote ParallaxScrollView a while back as proof of concept, people took surprisingly well to it; but from the get-go it was a fundamentally flawed. Tightly-coupled and inflexible, made it difficult to maintain and confusing for people to use. Features -------- Currently limited but will expand when requests. + Parallax another view when the parent scrolls. + Parallax multiple backgrounds. + Transformers, Parallax in different ways and directions __Supports:__ - `ListView` - `ScrollView` - `HorizontalScrollView` Modular ------- Paralloid is designed to be modular and very loosely coupled (to an extent). Two high level modules exist - `paralloid` - which is the library which everything extends from. - `paralloidviews` - which extends the library with a couple of pre-extended ScrollableViews. - `paralloidexamples` - which is of course the examples App. Generally use `paralloidviews` as it contains everything you need to get going. Getting Started --------------- ### Dependency _Currently I only support Gradle_ #### Locally: Temporary steps from @therealkris. - First, I cloned the library into `myproject/libs/paralloid`. - In my `settings.gradle`, I added include `':libs:paralloid:paralloid'`, `':libs:paralloid:paralloidviews'`. - In my `build.gradle`, I added `compile project(':libs:paralloid:paralloid')`, `project(':libs:paralloid:paralloidviews')`. - In `libs/paralloid/paralloid`, I removed the `uploadArchives {}` block. - In `libs/paralloid/paralloidviews`, I removed the `uploadArchives {}` block AND changed the dependency to read: `compile project(':libs:paralloid:paralloid')` instead of `compile project(':paralloid')` #### Or Repository (coming soon): dependencies { compile 'uk.co.chrisjenx.paralloid:paralloid:0.1.+' } ### Layout #### ScrollView This is an example, please refer to the `paralloidexample` App for full code. ### Fragment Inside your `onViewCreated()` or `onCreateView()`. //... FrameLayout topContent = (FrameLayout) rootView.findViewById(R.id.top_content); ScrollView scrollView = (ScrollView) rootView.findViewById(R.id.scroll_view); if (scrollView instanceof Parallaxor) { ((Parallaxor) scrollView).parallaxViewBy(topContent, 0.5f); } // TODO: add content to top/scroll content Thats it! Have a look at the `Parallaxor` interface for applicable Parallax methods. Custom Views ------------- I tried to keep this as simple as possible, you can nearly copy and paste this. - Extend the Scrollable view (or the one you allready have). - Impliment the `Parallaxor` interface. - Job done! See below for an example __Example implementation:__ public class MyScrollView extends ScrollView implements Parallaxor { //... ParallaxScrollController mParallaxScrollController; private void init() { mParallaxScrollController = ParallaxScrollController.wrap(this); } @Override public void parallaxViewBy(View view, float factor) { mParallaxScrollController.parallaxViewBy(view, factor); } @Override public void parallaxBackgroundBy(Drawable drawable, float factor) { mParallaxScrollController.parallaxBackgroundBy(drawable, factor); } @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); mParallaxScrollController.onScrollChanged(this, l, t, oldl, oldt); } }