EasyFlipView
https://github.com/wajahatkarim3/EasyFlipView
The article on how this library was created is now published. You can read it on this link here. β.
π³ EasyFlipView
[Codacy Badge](https://api.codacy.com/project/badge/Grade/b6f4c512c5cf4705a41a04fe101a6c6e)
[Build Status](https://travis-ci.org/wajahatkarim3/EasyFlipView.svg?branch=master) [Download](https://api.bintray.com/packages/wajahatkarim3/EasyFlipView/com.wajahatkarim3.EasyFlipView/images/download.svg) [Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-EasyFlipView-brightgreen.svg?style=flat) [API](https://img.shields.io/badge/API-15%2B-blue.svg?style=flat) [](https://img.shields.io/badge/MaterialUp-EasyFlipView-yellowgreen.png) [Say Thanks](https://img.shields.io/badge/Say%20Thanksβ1EAEDB.svg)
Built with β€οΈ by
Wajahat Karim and
contributors
</div>
A quick and easy flip view through which you can create views with two sides like credit cards, poker cards etc. [](https://github.com/wajahatkarim3/EasyFlipView/blob/master/Art/demo.gif) βοΈ Changelog ========= Changes exist in the [releases](https://github.com/wajahatkarim3/EasyFlipView/releases) tab. π» Installation ============ Add this in your app's build.gradle file: ```groovy dependencies { implementation 'com.wajahatkarim3.EasyFlipView:EasyFlipView:2.1.2' } ``` Or add EasyFlipView as a new dependency inside your pom.xml ```xml
com.wajahatkarim3.EasyFlipView
EasyFlipView
2.1.2
pom
```
β Usage
=====
XML
---
EasyFlipView In XML layouts("Vertical")
```xml
<-- Back Layout Goes Here -->
<-- Front Layout Goes Here -->
```
EasyFlipView In XML layouts("Horizontal")
```xml
<-- Back Layout Goes Here -->
<-- Front Layout Goes Here -->
```
# π¨ Customizations & Attributes
All customizable attributes for EasyFlipView
In Code (Java)
----
```java
// Flips the view with or without animation
mYourFlipView.flipTheView();
mYourFlipView.flipTheView(false);
// Sets and Gets the Flip Animation Duration in milliseconds (Default is 400 ms)
mYourFlipView.setFlipDuration(1000);
int dur = mYourFlipView.getFlipDuration();
// Sets and gets the flip enable status (Default is true)
mYourFlipView.setFlipEnabled(false);
boolean flipStatus = mYourFlipView.isFlipEnabled();
// Sets and gets the flip on touch status (Default is true)
mYourFlipView.setFlipOntouch(false);
boolean flipTouchStatus = mYourFlipView.isFlipOnTouch();
// Get current flip state in enum (FlipState.FRONT_SIDE or FlipState.BACK_SIDE)
EasyFlipView.FlipState flipSide = mYourFlipView.getCurrentFlipState();
// Get whether front/back side of flip is visible or not.
boolean frontVal = mYourFlipView.isFrontSide();
boolean backVal = mYourFlipView.isBackSide();
// Get/Set the FlipType to FlipType.Horizontal
boolean isHorizontal = mYourFlipView.isHorizontalType();
mYourFlipView.setToHorizontalType();
// Get/Set the FlipType to FlipType.Vertical
boolean isVertical = mYourFlipView.isVerticalType();
mYourFlipView.setToVerticalType();
// Get/Set if the auto flip back is enabled
boolean isAutoFlipBackEnabled = mYourFlipView.isAutoFlipBack();
mYourFlipView.setAutoFlipBack(true);
// Get/Set the time in milliseconds (ms) after the view is auto flip back to original front side
int autoflipBackTimeInMilliseconds = mYourFlipView.getAutoFlipBackTime();
mYourFlipView.setAutoFlipBackTime(2000);
// Sets the animation direction from left (horizontal) and back (vertical)
easyFlipView.setFlipTypeFromLeft();
// Sets the animation direction from right (horizontal) and front (vertical)
easyFlipView.setFlipTypeFromRight();
// Sets the animation direction from front (vertical) and right (horizontal)
easyFlipView.setFlipTypeFromFront();
// Sets the animation direction from back (vertical) and left (horizontal)
easyFlipView.setFlipTypeFromBack();
// Returns the flip type from direction. For horizontal, it will be either right or left and for vertical, it will be front or back.
easyFlipView.getFlipTypeFrom();
```
Flip Animation Listener
---
```java
EasyFlipView easyFlipView = (EasyFlipView) findViewById(R.id.easyFlipView);
easyFlipView.setOnFlipListener(new EasyFlipView.OnFlipAnimationListener() {
@Override
public void onViewFlipCompleted(EasyFlipView flipView, EasyFlipView.FlipState newCurrentSide)
{
// ...
// Your code goes here
// ...
}
});
```
β Known Issues
=============
The `EasyFlipView` doesn't flip when used in `RecyclerView`. This is because the `EasyFlipView` uses the `onTouch()` method to intercept the touch events and flip the view accordingly. One easier solution is to disable the `flipOnTouch` attribute in XML by this.
```xml
app:flipOnTouch="false"
```
Now, your `RecyclerView` will scroll but the `EasyFlipView` will not flip or animate on touch etc. You will have to manually flip the view by calling the method `mYourFlipView.flipTheView()` inside the adapter or `ViewHolder` class of the `RecyclerView`. For example,
```java
public class MyRecyclerViewAdapter extends RecyclerView.Adapter {
private List
A quick and easy flip view through which you can create views with two sides like credit cards, poker cards etc. [](https://github.com/wajahatkarim3/EasyFlipView/blob/master/Art/demo.gif) βοΈ Changelog ========= Changes exist in the [releases](https://github.com/wajahatkarim3/EasyFlipView/releases) tab. π» Installation ============ Add this in your app's build.gradle file: ```groovy dependencies { implementation 'com.wajahatkarim3.EasyFlipView:EasyFlipView:2.1.2' } ``` Or add EasyFlipView as a new dependency inside your pom.xml ```xml
Attribute Name | Default Value | Description |
---|---|---|
app:flipOnTouch="true" | true | Whether card should be flipped on touch or not. |
app:flipDuration="400" | 400 | The duration of flip animation in milliseconds. |
app:flipEnabled="true" | true | If this is set to false, then it won't flip ever in Single View and it has to be always false for RecyclerView |
app:flipType="horizontal" | vertical | Whether card should flip in vertical or horizontal |
app:flipType="horizontal" | vertical | Whether card should flip in vertical or horizontal |
app:flipFrom="right" app:flipFrom="back" | left front | Whether card should flip from left to right Or right to left(Horizontal type) or car should flip to front or back(Vertical type) |
app:autoFlipBack="true" | false | If this is set to true, then he card will be flipped back to original front side after the time set in autoFlipBackTime. |
app:autoFlipBackTime="1000" | 1000 | The time in milliseconds (ms), after the card will be flipped back to original front side. |