Need help with Paralloid?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

chrisjenx
447 Stars 93 Forks Apache License 2.0 77 Commits 14 Opened issues

Description

Paralloid - (Pah-rah-loid) The Android Parallax library - DEPRECATED.

Services available

!
?

Need anything else?

Contributors list

No Data

Paralloid - DEPRECATED

DEPRECATED - Use the project for more of guide and ideas how to apply parallax techniques. I will not support this library anymore.

Paralloid - (Pah-rah-loid) The Android Parallax library

Compatible back to API 7

An example application, Paralloid Library Example, 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.

<uk.co.chrisjenx.paralloid.views.parallaxscrollview android:id="@+id/scroll_view" android:layout_width="match_parent" android:layout_height="match_parent" android:fillviewport="true">

<linearlayout android:id="@+id/scroll_content" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingtop="192dp"></linearlayout>

</uk.co.chrisjenx.paralloid.views.parallaxscrollview>

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).
  • Implement the
    Parallaxor
    interface.
  • Job done! See below for an example

Example implementation:

public class MyScrollView extends ScrollView implements Parallaxor {
  //...
  ParallaxViewController mParallaxViewController;

// Call init() in constructors private void init() { mParallaxViewController = ParallaxViewController.wrap(this); }

@Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); mParallaxViewController.onScrollChanged(this, l, t, oldl, oldt); }

// region Implementation of Parallaxor

@Override public void parallaxViewBy(View view, float multiplier) { mParallaxViewController.parallaxViewBy(view, multiplier); }

@Override public void parallaxViewBy(View view, Transformer transformer, float multiplier) { mParallaxViewController.parallaxViewBy(view, transformer, multiplier); }

@Override public void parallaxViewBackgroundBy(View view, Drawable drawable, float multiplier) { mParallaxViewController.parallaxViewBackgroundBy(view, drawable, multiplier); }

// endregion }

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.