Swipe3DRotateView is extended from a Framelayout and should exactly contain 2 views as its children. It detects swipe gestures on its child view, and based on the swipe direction, rotates the children in a 3D manner on their X or Y axis.
Add dependency in your build.gradle(app)
dependencies {
compile 'com.github.nipun-birla:Swipe3DRotateView:0.0.1'
}
Put Swipe3DRotateView in your layout as required :
<com.nipunbirla.swipe3drotateview.Swipe3DRotateView
android:id="@+id/rotateView"
android:layout_height="match_parent"
android:layout_width="match_parent">
//Put the backview as first child
<FrameLayout
android:layout_width="300dp"
android:layout_height="300dp"
android:layout_gravity="center"
android:background="#934567">
</FrameLayout>
//Put the frontview as second child
<FrameLayout
android:layout_gravity="center"
android:layout_width="300dp"
android:layout_height="300dp"
android:background="#134567">
</FrameLayout>
</com.nipunbirla.swipe3drotateview.Swipe3DRotateView>
Find view in your activity as :
Swipe3DRotateView swipe3DRotateView = findViewById(R.id.rotateView);
To set if X Rotation is allowed :
swipe3DRotateView.setIsXRotationAllowed(true);
To set if Y Rotation is allowed :
swipe3DRotateView.setIsYRotationAllowed(true);
To check if X Rotation is allowed :
boolean isXAllowed = swipe3DRotateView.isXRotationAllowed();
To check if Y Rotation is allowed :
boolean isYAllowed = swipe3DRotateView.isYRotationAllowed();
To set Animation duration, default value is 1000 millis
swipe3DRotateView.setAnimationDuration(1000);
To set animation listener on view up front, use :
swipe3DRotateView.setHalfAnimationCompleteListener(halfListener);
To set animation listener on view at back, use :
swipe3DRotateView.setCompleteAnimationCompleteListener(fullListener);