ECardFlow, A custom ViewPager for multiple card flow system.designed by Leo Leung
ECardFlow, 一个用于复数卡片滑动与展开效果的ViewPager控件,设计原型出自Leo Leung
ECardFlowLayout, A layout provide beautiful background effect for ViewPager.
ECardFlowLayout, 一个为ViewPager提供多种联动背景效果的布局
ECardFlow:
ECardFlowLayout:

Step 1. Add the JitPack repository to your build file
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
Step 2. Add the dependency
dependencies {
compile 'com.github.codeestX:ECardFlow:v1.0.5'
}
Step 3. Just use it as a ViewPager
<moe.codeest.ecardflow.ECardFlow
android:id="@+id/ecardflow"
android:layout_width="280dp"
android:layout_height="match_parent"
app:expandMode="slide_up"
app:expandTime="700"
app:switchTime="1200"
app:preloadPageNum="3"
app:maxRotateY="5">
android:clipChildren="false",and do NOT set ECardFlow's width asmatch_parentAttrs:
<declare-styleable name="attr">
<attr name="switchTime" format="integer" />
<attr name="expandTime" format="integer" />
<attr name="expandMode">
<enum name="slide_up" value="10" />
<enum name="click" value="11" />
</attr>
<attr name="preloadPageNum" format="integer" />
<attr name="touchSlop" format="integer" />
<attr name="maxRotateY" format="integer" />
</declare-styleable>
Java Code:
mEcardflow.gotoNext();
mEcardflow.gotoLast();
mEcardflow.expand();
mEcardflow.shrink();
mEcardflow.isExpanding();
mEcardflow.setTouchSlop(slop);
mEcardflow.setExpandTime(time);
mEcardflow.setOnExpandStateListener(new ECardFlow.OnExpandStateListener() {
@Override
public void onExpand(View page, int position) {
}
@Override
public void onShrink(View page, int position) {
}
});
Step 1. Add the JitPack repository to your build file
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
Step 2. Add the dependency
dependencies {
compile 'com.github.codeestX:ECardFlow:v1.0.5'
}
Step 3. Just put a ViewPager in ECardFlowLayout
<moe.codeest.ecardflow.ECardFlowLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ecardflow_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false">
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="240dp"
android:layout_height="270dp"
android:layout_gravity="center_horizontal|bottom"
android:layout_marginBottom="80dp"/>
</moe.codeest.ecardflow.ECardFlowLayout>
Step 4. setAnimMode & setImageProvider
mVPLayout = (ECardFlowLayout) findViewById(R.id.ecardflow_layout);
mVPLayout.setAnimMode(new BlurAnimMode());
mVPLayout.setImageProvider(new DrawableImageProvider(this, res, width, height);
mVPLayout.onDestroy(); to release sourceAttrs:
<declare-styleable name="attr_layout">
<attr name="switchAnimTime" format="integer" />
</declare-styleable>
Java Code:
mVPLayout.setImageProvider(imageProvider);
mVPLayout.setAnimMode(animMode);
mVPLayout.setSwitchAnimTime(time);
//maxSize = Runtime.getRuntime().maxMemory();
//default: maxSize / 5
//min: maxSize / 8
mVPLayout.setCacheSize(megabytes);
mVPLayout.onDestroy();
| AnimMode | Des |
|---|---|
| DefaultAnimMode | No Effect |
| BlurAnimMode | Blur Effect |
| MoveAnimMode | Parallax Effect |
| ScaleAnimMode | Scale Effect |
| CrossMoveAnimMode | Cross Parallax Effect |
You can custom AnimMode with class which implements AnimMode |
| ImageProvider | Des |
|---|---|
| DrawableImageProvider | Prividing resId(R.drawable/mipmap.xx) as image resource |
| PathImageProvider | Prividing file path as image resource |
| FileImageProvider | Prividing File as image resource |
You can custom ImageProvider with class which implements ImageProvider |
If you choose BlurAnimMode, you can enable RenderScript for a high performance.
Open the build.gradle file in the app folder of your application module.
Add the following RenderScript settings to the file:android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { minSdkVersion 9 targetSdkVersion 19 //Enable RenderScript renderscriptTargetApi 23 renderscriptSupportModeEnabled true } }
MIT Copyright (c) 2017 codeestX
$ claude mcp add ECardFlow \
-- python -m otcore.mcp_server <graph>