A beautiful ripple animation for your app. You can easily change its color, speed of wave, one ripple or multiple ripples. See demo below.
##Usage
###Step 1
####Install with Gradle
dependencies {
compile 'com.skyfishjy.ripplebackground:library:1.0.1'
}
###Step 2 ####RippleBackground
Add RippleBackground
to your layout with content you want, like an ImageView. Configure the view customization elements using styleable attributes.
<com.skyfishjy.library.RippleBackground
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/content"
app:rb_color="#0099CC"
app:rb_radius="32dp"
app:rb_rippleAmount="4"
app:rb_duration="3000"
app:rb_scale="6">
<ImageView
android:layout_width="64dp"
android:layout_height="64dp"
android:layout_centerInParent="true"
android:id="@+id/centerImage"
android:src="@drawable/demoImage"/>
</com.skyfishjy.library.RippleBackground>
Start animation:
final RippleBackground rippleBackground=(RippleBackground)findViewById(R.id.content);
ImageView imageView=(ImageView)findViewById(R.id.centerImage);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
rippleBackground.startRippleAnimation();
}
});
Stop animation:
rippleBackground.stopRippleAnimation();
##Theming
- app:rb_color [color def:@android:color/holo_blue_dark] --> Color of the ripple
- app:rb_radius [dimension def:64dp ] --> Radius of the ripple
- app:rb_duration [integer def:3000 ] --> Duration of one ripple animation (millisecond)
- app:rb_rippleAmount [integer def:6] --> Max amount of ripples at one screen
- app:rb_scale [interger def:6] --> Scale of ripple at the end of one animation cycle
- app:rb_type [enum (fillRipple, strokeRipple) def:fillRipple] --> Filled circle or ring
- app:rb_strokeWidth [dimension def:2dp] --> Stroke width of the ripple, ONLY work when rb_type="strokeRipple"