MCPcopy Index your code
hub / github.com/codeestX/ECardFlow

github.com/codeestX/ECardFlow @v1.0.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.5 ↗ · + Follow
173 symbols 361 edges 30 files 29 documented · 17%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

ECardFlow

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提供多种联动背景效果的布局

Preview

ECardFlow:

ECardFlowLayout:

Usage(ECardFlow)

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">
  • Only support fragment as each page
  • For best performance, giving ECardFlow's parent view an attrandroid:clipChildren="false",and do NOT set ECardFlow's width asmatch_parent
  • See DemoProject for more details

Attrs:

<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) {

            }
        });

Usage(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 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);
  • Set AnimMode before Set ImageProvider
  • Use mVPLayout.onDestroy(); to release source
  • See DemoProject for more details

Attrs:

<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
      }
  }

Download Demo APK

License

  MIT Copyright (c) 2017 codeestX

Extension points exported contracts — how you extend this code

AnimMode (Interface)
Created by codeest on 2017/1/20. [12 implementers]
ecardflow/src/main/java/moe/codeest/ecardflow/mode/AnimMode.java
OnPageListener (Interface)
(no doc) [1 implementers]
app/src/main/java/moe/codeest/ecardflowdemo/fragment/PagerFragment.java
ImageProvider (Interface)
Created by codeest on 2017/1/19. [6 implementers]
ecardflow/src/main/java/moe/codeest/ecardflow/provider/ImageProvider.java
OnExpandStateListener (Interface)
(no doc) [1 implementers]
ecardflow/src/main/java/moe/codeest/ecardflow/ECardFlow.java

Core symbols most depended-on inside this repo

blurBitmap
called by 9
ecardflow/src/main/java/moe/codeest/ecardflow/ECardFlowLayout.java
loadBitmap
called by 8
ecardflow/src/main/java/moe/codeest/ecardflow/ECardFlowLayout.java
recycleBitmap
called by 8
ecardflow/src/main/java/moe/codeest/ecardflow/ECardFlowLayout.java
detachBitmap
called by 8
ecardflow/src/main/java/moe/codeest/ecardflow/ECardFlowLayout.java
setAnimMode
called by 5
ecardflow/src/main/java/moe/codeest/ecardflow/ECardFlowLayout.java
newInstance
called by 5
app/src/main/java/moe/codeest/ecardflowdemo/fragment/PagerFragment.java
startTrans
called by 4
ecardflow/src/main/java/moe/codeest/ecardflow/ECardFlowLayout.java
getScreenWidth
called by 4
ecardflow/src/main/java/moe/codeest/ecardflow/util/DimenUtils.java

Shape

Method 135
Class 34
Interface 4

Languages

Java100%

Modules by API surface

ecardflow/src/main/java/moe/codeest/ecardflow/ECardFlowLayout.java37 symbols
ecardflow/src/main/java/moe/codeest/ecardflow/ECardFlow.java32 symbols
app/src/main/java/moe/codeest/ecardflowdemo/fragment/PagerFragment.java14 symbols
app/src/main/java/moe/codeest/ecardflowdemo/adapter/ItemAdapter.java9 symbols
app/src/main/java/moe/codeest/ecardflowdemo/activity/CardFlowActivity.java7 symbols
ecardflow/src/main/java/moe/codeest/ecardflow/support/RecyclingBitmapDrawable.java6 symbols
ecardflow/src/main/java/moe/codeest/ecardflow/support/CardFlowTransformer.java4 symbols
ecardflow/src/main/java/moe/codeest/ecardflow/mode/BlurAnimMode.java4 symbols
app/src/main/java/moe/codeest/ecardflowdemo/fragment/ImageFragment.java4 symbols
app/src/main/java/moe/codeest/ecardflowdemo/adapter/PagerAdapter.java4 symbols
app/src/main/java/moe/codeest/ecardflowdemo/adapter/ImageAdapter.java4 symbols
app/src/main/java/moe/codeest/ecardflowdemo/activity/CardFlowLayoutActivity.java4 symbols

For agents

$ claude mcp add ECardFlow \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact