Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/naxam/rippleeffect-android-binding

Xamarin Android Binding Library for Traex RippleEffect
https://github.com/naxam/rippleeffect-android-binding

bindings ripple ripple-animation ripple-effect rippleeffect rippleview xamarin xamarin-android-binding

Last synced: 27 days ago
JSON representation

Xamarin Android Binding Library for Traex RippleEffect

Awesome Lists containing this project

README

        

RippleEffect - Xamarin Android Binding Library
================

![RippleEffect](https://github.com/traex/RippleEffect/blob/master/header.png)

ExpandableLayout provides an easy way to create a view called header with an expandable view. Both view are external layout to allow a maximum of customization. [You can find a sample](https://github.com/traex/ExpandableLayout/blob/master/sample/) that how to use an ExpandableLayout to your layout.

![RippleEffect GIF](https://github.com/traex/RippleEffect/blob/master/demo.gif)

### Integration

```
Install-Package Naxam.RippleEffect.Droid
```

### Usage

#### RippleView

Declare a RippleView inside your XML layout file with a content like an ImageView or whatever.

``` xml

```

If you want to know when the Ripple effect is finished, you can set a listener on your view
``` java
rippleView.setOnRippleCompleteListener(new RippleView.OnRippleCompleteListener() {

@Override
public void onComplete(RippleView rippleView) {
Log.d("Sample", "Ripple completed");
}

});
```

If you want to add an `OnClickListener` don't forget to add it to the RippleView like this:
``` java
final RippleView rippleView = (RippleView) findViewById(R.id.rippleView);
rippleView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//TODO: onRippleViewClick
}
});
```

### Customization

You can change several attributes in the XML file, you have to remove "rv_" if you are using a version below v1.1.1 :

* app:rv_alpha [integer def:90 0-255] --> Alpha of the ripple
* app:rv_framerate [integer def:10] --> Frame rate of the ripple animation
* app:rv_rippleDuration [integer def:400] --> Duration of the ripple animation
* app:rv_ripplePadding [dimension def:0] --> Add a padding to the ripple
* app:rv_color [color def:@android:color/white] --> Color of the ripple
* app:rv_centered [boolean def:false] --> Center ripple in the child view
* app:rv_type [enum (simpleRipple, doubleRipple) def:simpleRipple] --> Simple or double ripple
* app:rv_zoom [boolean def:false] --> Enable zoom animation
* app:rv_zoomDuration [integer def:150] --> Duration of zoom animation
* app:rv_zoomScale [float def:1.03] --> Scale of zoom animation

For each attribute you can use getters and setters to change values dynamically.

### Troubleshooting

If you want to use the double ripple you have to set a background for the RippleView or for its child.