A lightweight android library that allows to you create custom fast forward/rewind animations like on Netflix.

Overview

SuperForwardView

About

A lightweight android library that allows to you create custom fast forward/rewind animations like on Netflix.

GIF

Design Credits

All design and inspiration credits belongs to Netflix.

Setup

  • Add it in your root build.gradle at the end of repositories:
allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}
  • Add the dependency
dependencies {
        implementation 'com.github.ertugrulkaragoz:SuperForwardView:0.2'
}

Usage

  • Add SuperForwardView in your layout:
">
 Width / height must be equal to 2. Otherwise it will not work properly.
 <me.ertugrul.lib.Forward
        android:id="@+id/forward"
        android:layout_width="100dp"
        android:layout_height="50dp"
        app:f_color="#ffffff"
        app:f_textSize="15sp"
        app:f_arrowSize="10dp"
        app:f_strokeWidth="3dp" />

 <me.ertugrul.lib.Rewind
        android:id="@+id/rewind"
        android:layout_width="100dp"
        android:layout_height="50dp"
        app:r_color="#ffffff"
        app:r_textSize="15sp"
        app:r_arrowSize="10dp"
        app:r_strokeWidth="3dp" />
  • Customization:
">
    <me.ertugrul.lib.Forward
        android:id="@+id/forward"
        android:layout_width="100dp"
        android:layout_height="50dp"
        app:f_textSize="15sp"
        app:f_color="#ffffff"
        app:f_strokeWidth="3dp"
        app:f_textInput="10"
        app:f_animationDuration="1000"
        app:f_scalePercent="16"
        app:f_arcRotationAngle="60"
        app:f_sweepAngle="300"
        app:f_arrowSize="10dp" />

   <me.ertugrul.lib.Rewind
        android:id="@+id/forward"
        android:layout_width="100dp"
        android:layout_height="50dp"
        app:r_textSize="15sp"
        app:r_color="#ffffff"
        app:r_strokeWidth="3dp"
        app:r_textInput="10"
        app:r_animationDuration="1000"
        app:r_scalePercent="16"
        app:r_arcRotationAngle="60"
        app:r_sweepAngle="300"
        app:r_arrowSize="10dp" />
  • Get notified when SuperForwardView animation starts or ends by callback:
	forward.onAnimationStart = {
            Log.e("onAnimationStart", "started")
        }
        forward.onAnimationEnd = {
            Log.e("onAnimationEnd", "ended")
        }
	
	rewind.onAnimationStart = {
            Log.e("onAnimationStart", "started")
        }
        rewind.onAnimationEnd = {
            Log.e("onAnimationEnd", "ended")
        }

Or set a listener

	forward.setOnAnimationStartListener(object : OnAnimationStartListener {
            override fun onAnimationStart() {
                Log.e("OnAnimationStartListenr", "started")
            }
        })
        forward.setOnAnimationEndListener(object : OnAnimationEndListener {
            override fun onAnimationEnd() {
                Log.e("OnAnimationEndListenr", "ended")
            }
        })
	
	rewind.setOnAnimationStartListener(object : OnAnimationStartListener {
            override fun onAnimationStart() {
                Log.e("OnAnimationStartListenr", "started")
            }
        })
        rewind.setOnAnimationEndListener(object : OnAnimationEndListener {
            override fun onAnimationEnd() {
                Log.e("OnAnimationEndListenr", "ended")
            }
        })

License

MIT License

Copyright (c) 2021 Ertuğrul Karagöz

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
You might also like...
Android Library To Create Button With Multi Reactions like Facebook or Linkedin
Android Library To Create Button With Multi Reactions like Facebook or Linkedin

ReactButton Android Library written in Java to Create ReactButton with Multi Reactions like Facebook or Linkedin 😎 Default Reactions 😄 Custom Reacti

A lightweight indicator like in nexus 5 launcher
A lightweight indicator like in nexus 5 launcher

CircleIndicator A lightweight indicator like in nexus 5 launcher Gradle AndroidX dependencies { implementation 'me.relex:circleindicator:2.1.6' }

BaseAnimation network Android animation set, custom controls, nearly 200 kinds of source code! BaseAnimation, if a new version is updated automatically to remind everyone, I hope everyone will contribute their animated XML files or other source, together to create this open source app! Automatically manipulates the duration of animations dependent on view count. Quicksand .. the more you struggle.
Automatically manipulates the duration of animations dependent on view count. Quicksand .. the more you struggle.

QuickSand When showing a really enchanting explanatory animation to your users, but you know that after a while it'll get tedious and would stop users

Group of libraries to help you build better animations with Jetpack Compose
Group of libraries to help you build better animations with Jetpack Compose

Group of libraries to help you build better animations with Jetpack Compose

create your custom themes and change them dynamically with ripple animation
create your custom themes and change them dynamically with ripple animation

Android Animated Theme Manager create your custom themes and change them dynamically with ripple animation Features support java and kotlin projects.

Android library which allows you to swipe down from an activity to close it.
Android library which allows you to swipe down from an activity to close it.

Android Sliding Activity Library Easily create activities that can slide vertically on the screen and fit well into the Material Design age. Features

Fast marker clustering library for Google Maps Android API.
Fast marker clustering library for Google Maps Android API.

Google Maps Clustering for Android A fast marker clustering library for Google Maps Android API. Motivation Why not use Google Maps Android API Utilit

FilePicker is a small and fast file selector library that is constantly evolving with the goal of rapid integration, high customization, and configurability~
FilePicker is a small and fast file selector library that is constantly evolving with the goal of rapid integration, high customization, and configurability~

Android File Picker 🛩️ 中文简体 Well, it doesn't have a name like Rocky, Cosmos or Fish. Android File Picker, like its name, is a local file selector fra

Releases(0.2)
Owner
Ertugrul
Ertugrul
🪐 Jetpack Compose animation library that allows you to implement animations such as shared element transition.

Orbitary ?? Jetpack Compose animation library that allows you to implement animations such as shared element transition. Download Gradle Add the depen

Jaewoong Eum 503 Dec 30, 2022
🪐 Jetpack Compose animation library that allows you to implement animations such as shared element transition.

?? Jetpack Compose animation library that allows you to implement animations such as shared element transition.

Jaewoong Eum 504 Jan 2, 2023
Lightweight Android library for cool activity transition animations

Bungee min SDK 16 (Android Jellybean 4.1) written in Java A lightweight, easy-to-use Android library that provides awesome activity transition animati

Dean Spencer 172 Nov 18, 2022
[] An Android library which allows developers to easily add animations to ListView items

DEPRECATED ListViewAnimations is deprecated in favor of new RecyclerView solutions. No new development will be taking place, but the existing versions

Niek Haarman 5.6k Dec 30, 2022
Android library to create complex multi-state animations.

MultiStateAnimation Android library to create complex multi-state animations. Overview A class that allows for complex multi-state animations using An

Keepsafe 405 Nov 11, 2022
💳 A quick and easy flip view through which you can create views with two sides like credit cards, poker cards etc.

The article on how this library was created is now published. You can read it on this link here. →. ?? EasyFlipView Built with ❤︎ by Wajahat Karim and

Wajahat Karim 1.3k Dec 14, 2022
FragmentTransactionExtended is a library which provide us a set of custom animations between fragments.

FragmentTransactionExtended FragmentTransactionExtended is a library which provide us a set of custom animations between fragments. FragmentTransactio

Antonio Corrales 1.1k Dec 29, 2022
Add Animatable Material Components in Android Jetpack Compose. Create jetpack compose animations painless.

AnimatableCompose Add Animatable Material Components in Android Jetpack Compose. Create jetpack compose animation painless. What you can create from M

Emir Demirli 12 Jan 2, 2023
Combine ViewPager and Animations to provide a simple way to create applications' guide pages.

WoWoViewPager WoWoViewPager combines ViewPager and Animations to provide a simple way to create applications' guide pages. When users are dragging WoW

Nightonke 2.7k Dec 30, 2022
EtsyBlur is an Android library that allows developers to easily add a glass-like blur effect implemented in the Etsy app.

EtsyBlur EtsyBlur is an Android library that allows developers to easily add a glass-like blur effect implemented in the past Etsy app. Try out the sa

Manabu S. 755 Dec 29, 2022