A quick and easy flip view through which you can create views with two sides like credit cards
EasyFlipView
A quick and easy flip view through which you can create views with two sides like credit cards, poker cards etc.
Installation
Add this in your app's build.gradle file:
dependencies {
compile 'com.wajahatkarim3.EasyFlipView:EasyFlipView:2.0.5'
}
Or add EasyFlipView as a new dependency inside your pom.xml
<dependency>
<groupId>com.wajahatkarim3.EasyFlipView</groupId>
<artifactId>EasyFlipView</artifactId>
<version>2.0.5</version>
<type>pom</type>
</dependency>
Usage
XML
EasyFlipView In XML layouts("Vertical")
<com.wajahatkarim3.easyflipview.EasyFlipView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:flipOnTouch="true"
app:flipEnabled="true"
app:flipDuration="400"
app:flipType="vertical"
>
<!-- Back Layout Goes Here -->
<include layout="@layout/flash_card_layout_back"/>
<!-- Front Layout Goes Here -->
<include layout="@layout/flash_card_layout_front"/>
</com.wajahatkarim3.easyflipview.EasyFlipView>
EasyFlipView In XML layouts("Horizontal")
<com.wajahatkarim3.easyflipview.EasyFlipView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:flipOnTouch="true"
app:flipEnabled="true"
app:flipDuration="400"
app:flipType="horizontal"
>
<!-- Back Layout Goes Here -->
<include layout="@layout/flash_card_layout_back"/>
<!-- Front Layout Goes Here -->
<include layout="@layout/flash_card_layout_front"/>
</com.wajahatkarim3.easyflipview.EasyFlipView>
All customizable attributes for EasyFlipView
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 |
In Code (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();
Flip Animation Listener
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
// ...
}
});