Streamlining Android Development: HeluParallaxView

Whether you are looking to build a simple video, a bottom button or a collapsing tab bar, my Android utilities library is your one-stop shop. I created the Helu repository in an effort to make the Android development process smoother.

This week is all about HeluParallaxView. Every once in a while you may receive designs containing parallax images. Implementing the animation yourself can be a tricky task. Don’t worry. HeluParallaxView will get the whole job done for you. It is built at the top of ImageView and can be used anywhere. It doesn’t matter if you put it inside ScrollView, RecyclerView or any layout. All computations are made by the absolute position of HeluParallaxView on the screen.

Let’s try it yourself. Start by adding the library to you gradle file:

implementation '

Now you are ready to use HeluParallaxView. Let’s assume, for example, that you already have a layout, including ScrollView with a vertical LinearLayout in it. All you need to do is simply add HeluParallaxView into it:

	android:src="@drawable/kitten" />

If you duplicate this view a few times, the result should look like this:


Let’s explore the library a little bit and take a deeper look what we can do with it. There are a few attributes we can set to HeluParallaxView.

The most important attribute for us would probably be the scale one. This will determine how much “parallax” will be applied to the image. A lower value means that the image won’t “scroll” so much. A larger value, by contrast, will increase the scrolling behavior. The minimum is 1, which means there will be no parallax at all. Here is an example of app:scale="2":

HeluParallaxView Scale

Another useful attribute is app:reverse. This will change the direction in which the parallax is applied. You can change the direction for X, Y or both axis. Here is an example of app:reverse="reverseBoth"

HeluParallaxView Reverse

You might have a layout that is scrollable both vertically and horizontally at the same time. In that case, you’ll want to check out app:blockParallaxX and app:blockParallaxY. It will let you block parallax in a selected direction.

The last attribute you can set is Interpolation, which is set to linear by default. This can be a little bit funny thing to try. Here’s an example: app:interpolation="bounce"


Pretty funny, huh? You can also set all those attributes programmatically. Have a question or suggestion? Feel free to contact me. You can see all methods and examples here or go to, STRV's new open source library hub.  

Github Source Code

Share Article
Lukáš Hermann

Lukáš Hermann

Lukas is STRV's Android developer based in the Brno office. He loves computers, games, and programming is his passion.

You might also like...