Skip to content

Commit 527fda2

Browse files
committed
add ECardFlowLayout
1 parent aaa1986 commit 527fda2

36 files changed

+1335
-56
lines changed

app/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ android {
1010
versionCode 1
1111
versionName "1.0"
1212
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13+
14+
renderscriptTargetApi 23
15+
renderscriptSupportModeEnabled true
1316
}
1417
buildTypes {
1518
release {

app/src/main/AndroidManifest.xml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,22 @@
88
android:label="@string/app_name"
99
android:supportsRtl="true"
1010
android:theme="@style/AppTheme">
11-
<activity android:name=".MainActivity"
12-
android:theme="@style/AppTheme">
11+
<activity android:name=".activity.MainActivity"
12+
android:theme="@style/AppTheme"
13+
android:launchMode="singleTop"
14+
android:screenOrientation="portrait">
1315
<intent-filter>
1416
<action android:name="android.intent.action.MAIN" />
1517

1618
<category android:name="android.intent.category.LAUNCHER" />
1719
</intent-filter>
1820
</activity>
21+
<activity android:name=".activity.CardFlowActivity"
22+
android:launchMode="singleTop"
23+
android:screenOrientation="portrait"/>
24+
<activity android:name=".activity.CardFlowLayoutActivity"
25+
android:launchMode="singleTop"
26+
android:screenOrientation="portrait"/>
1927
</application>
2028

2129
</manifest>

app/src/main/java/moe/codeest/ecardflowdemo/MainActivity.java renamed to app/src/main/java/moe/codeest/ecardflowdemo/activity/CardFlowActivity.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package moe.codeest.ecardflowdemo;
1+
package moe.codeest.ecardflowdemo.activity;
22

33
import android.os.Bundle;
44
import android.support.v7.app.AppCompatActivity;
@@ -9,8 +9,15 @@
99
import java.util.List;
1010

1111
import moe.codeest.ecardflow.ECardFlow;
12+
import moe.codeest.ecardflowdemo.adapter.PagerAdapter;
13+
import moe.codeest.ecardflowdemo.fragment.PagerFragment;
14+
import moe.codeest.ecardflowdemo.R;
1215

13-
public class MainActivity extends AppCompatActivity implements PagerFragment.OnPageListener{
16+
/**
17+
* Created by codeest on 2017/1/21.
18+
*/
19+
20+
public class CardFlowActivity extends AppCompatActivity implements PagerFragment.OnPageListener {
1421

1522
private List<PagerFragment> mList = new ArrayList<>();
1623
private PagerAdapter mAdapter;
@@ -20,7 +27,7 @@ public class MainActivity extends AppCompatActivity implements PagerFragment.OnP
2027
@Override
2128
protected void onCreate(Bundle savedInstanceState) {
2229
super.onCreate(savedInstanceState);
23-
setContentView(R.layout.activity_main);
30+
setContentView(R.layout.activity_cardflow);
2431

2532
init();
2633
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package moe.codeest.ecardflowdemo.activity;
2+
3+
import android.os.Bundle;
4+
import android.support.v4.view.ViewPager;
5+
import android.support.v7.app.AppCompatActivity;
6+
7+
import java.util.ArrayList;
8+
import java.util.List;
9+
10+
import moe.codeest.ecardflow.ECardFlowLayout;
11+
import moe.codeest.ecardflow.mode.BlurAnimMode;
12+
import moe.codeest.ecardflow.mode.DefaultAnimMode;
13+
import moe.codeest.ecardflow.mode.MoveAnimMode;
14+
import moe.codeest.ecardflow.provider.DrawableImageProvider;
15+
import moe.codeest.ecardflow.util.DimenUtils;
16+
import moe.codeest.ecardflowdemo.R;
17+
import moe.codeest.ecardflowdemo.adapter.ImageAdapter;
18+
import moe.codeest.ecardflowdemo.fragment.ImageFragment;
19+
import moe.codeest.ecardflowdemo.support.ZoomOutPageTransformer;
20+
21+
/**
22+
* Created by codeest on 2017/1/17.
23+
*/
24+
25+
public class CardFlowLayoutActivity extends AppCompatActivity {
26+
27+
public static int MODE_DEFAULT = 0;
28+
public static int MODE_BLUR = 1;
29+
public static int MODE_MOVE = 2;
30+
31+
private ECardFlowLayout mVPLayout;
32+
private ViewPager mViewPager;
33+
private ImageAdapter mAdapter;
34+
private List<ImageFragment> mList = new ArrayList<>();
35+
private String[] str = {"Pixiv","点兔","宮坂","君名"};
36+
private int[] res = {R.mipmap.cover, R.mipmap.img1, R.mipmap.img2, R.mipmap.img3};
37+
private int mMode;
38+
39+
@Override
40+
protected void onCreate(Bundle savedInstanceState) {
41+
super.onCreate(savedInstanceState);
42+
setContentView(R.layout.activity_cardflow_layout);
43+
mMode = getIntent().getIntExtra("mode", MODE_DEFAULT);
44+
init();
45+
}
46+
47+
private void init() {
48+
mVPLayout = (ECardFlowLayout) findViewById(R.id.ecardflow_layout);
49+
mViewPager = (ViewPager) findViewById(R.id.viewpager);
50+
51+
switch (mMode) {
52+
case 0:
53+
mVPLayout.setAnimMode(new DefaultAnimMode());
54+
break;
55+
case 1:
56+
mVPLayout.setAnimMode(new BlurAnimMode());
57+
break;
58+
case 2:
59+
mVPLayout.setAnimMode(new MoveAnimMode());
60+
break;
61+
}
62+
mVPLayout.setImageProvider(new DrawableImageProvider(this, res, DimenUtils.getScreenWidth(getApplicationContext()), DimenUtils.getScreenHeight(getApplicationContext())));
63+
for (int i = 0; i < 4; i++) {
64+
mList.add(ImageFragment.newInstance(str[i], res[i]));
65+
}
66+
67+
mAdapter = new ImageAdapter(getSupportFragmentManager(), mList);
68+
mViewPager.setOffscreenPageLimit(3);
69+
mViewPager.setPageTransformer(true, new ZoomOutPageTransformer());
70+
mViewPager.setAdapter(mAdapter);
71+
}
72+
73+
@Override
74+
protected void onDestroy() {
75+
super.onDestroy();
76+
mVPLayout.onDestroy();
77+
}
78+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package moe.codeest.ecardflowdemo.activity;
2+
3+
import android.content.Intent;
4+
import android.os.Bundle;
5+
import android.support.v7.app.AppCompatActivity;
6+
import android.support.v7.widget.AppCompatButton;
7+
import android.view.View;
8+
9+
import moe.codeest.ecardflowdemo.R;
10+
11+
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
12+
13+
AppCompatButton btnCard, btnLayout, btnLayoutBlur, btnLayoutMove;
14+
15+
16+
@Override
17+
public void onCreate(Bundle savedInstanceState) {
18+
super.onCreate(savedInstanceState);
19+
setContentView(R.layout.activity_main);
20+
21+
btnCard = (AppCompatButton) findViewById(R.id.btn_card);
22+
btnLayout = (AppCompatButton) findViewById(R.id.btn_layout);
23+
btnLayoutBlur = (AppCompatButton) findViewById(R.id.btn_layout_blur);
24+
btnLayoutMove = (AppCompatButton) findViewById(R.id.btn_layout_move);
25+
26+
btnCard.setOnClickListener(this);
27+
btnLayout.setOnClickListener(this);
28+
btnLayoutBlur.setOnClickListener(this);
29+
btnLayoutMove.setOnClickListener(this);
30+
}
31+
32+
@Override
33+
public void onClick(View v) {
34+
if (v == btnCard) {
35+
Intent it = new Intent(this, CardFlowActivity.class);
36+
startActivity(it);
37+
} else if (v == btnLayout) {
38+
Intent it = new Intent(this, CardFlowLayoutActivity.class);
39+
it.putExtra("mode", CardFlowLayoutActivity.MODE_DEFAULT);
40+
startActivity(it);
41+
} else if (v == btnLayoutBlur) {
42+
Intent it = new Intent(this, CardFlowLayoutActivity.class);
43+
it.putExtra("mode", CardFlowLayoutActivity.MODE_BLUR);
44+
startActivity(it);
45+
} else {
46+
Intent it = new Intent(this, CardFlowLayoutActivity.class);
47+
it.putExtra("mode", CardFlowLayoutActivity.MODE_MOVE);
48+
startActivity(it);
49+
}
50+
}
51+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package moe.codeest.ecardflowdemo.adapter;
2+
3+
import android.support.v4.app.Fragment;
4+
import android.support.v4.app.FragmentManager;
5+
import android.support.v4.app.FragmentPagerAdapter;
6+
7+
import java.util.List;
8+
9+
import moe.codeest.ecardflowdemo.fragment.ImageFragment;
10+
11+
/**
12+
* Created by codeest on 2017/1/17.
13+
*/
14+
15+
public class ImageAdapter extends FragmentPagerAdapter{
16+
17+
private List<ImageFragment> mList;
18+
19+
public ImageAdapter(FragmentManager fm, List<ImageFragment> mList) {
20+
super(fm);
21+
this.mList = mList;
22+
}
23+
24+
@Override
25+
public Fragment getItem(int position) {
26+
return mList.get(position);
27+
}
28+
29+
@Override
30+
public int getCount() {
31+
return mList.size();
32+
}
33+
}

app/src/main/java/moe/codeest/ecardflowdemo/ItemAdapter.java renamed to app/src/main/java/moe/codeest/ecardflowdemo/adapter/ItemAdapter.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
package moe.codeest.ecardflowdemo;
1+
package moe.codeest.ecardflowdemo.adapter;
22

33
import android.graphics.Rect;
44
import android.support.v7.widget.RecyclerView;
55
import android.view.LayoutInflater;
66
import android.view.View;
77
import android.view.ViewGroup;
88

9-
import static moe.codeest.ecardflowdemo.PagerFragment.dp2px;
9+
import moe.codeest.ecardflowdemo.R;
10+
11+
import static moe.codeest.ecardflowdemo.fragment.PagerFragment.dp2px;
1012

1113
/**
1214
* Created by codeest on 2017/1/13.

app/src/main/java/moe/codeest/ecardflowdemo/PagerAdapter.java renamed to app/src/main/java/moe/codeest/ecardflowdemo/adapter/PagerAdapter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1-
package moe.codeest.ecardflowdemo;
1+
package moe.codeest.ecardflowdemo.adapter;
22

33
import android.support.v4.app.Fragment;
44
import android.support.v4.app.FragmentManager;
55
import android.support.v4.app.FragmentPagerAdapter;
66

77
import java.util.List;
88

9+
import moe.codeest.ecardflowdemo.fragment.PagerFragment;
10+
911
/**
1012
* Created by codeest on 2017/1/8.
1113
*/
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package moe.codeest.ecardflowdemo.fragment;
2+
3+
import android.os.Bundle;
4+
import android.support.annotation.Nullable;
5+
import android.support.v4.app.Fragment;
6+
import android.view.LayoutInflater;
7+
import android.view.View;
8+
import android.view.ViewGroup;
9+
import android.widget.ImageView;
10+
import android.widget.TextView;
11+
12+
import moe.codeest.ecardflowdemo.R;
13+
14+
/**
15+
* Created by codeest on 2017/1/17.
16+
*/
17+
18+
public class ImageFragment extends Fragment{
19+
20+
private TextView tvDes;
21+
private ImageView ivImg;
22+
23+
public static ImageFragment newInstance(String str, int res) {
24+
ImageFragment fragment = new ImageFragment();
25+
Bundle args = new Bundle();
26+
args.putString("str", str);
27+
args.putInt("res", res);
28+
fragment.setArguments(args);
29+
return fragment;
30+
}
31+
32+
@Nullable
33+
@Override
34+
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
35+
View mView = inflater.inflate(R.layout.image_pager, null);
36+
ivImg = (ImageView) mView.findViewById(R.id.image);
37+
tvDes = (TextView) mView.findViewById(R.id.title);
38+
return mView;
39+
}
40+
41+
@Override
42+
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
43+
super.onViewCreated(view, savedInstanceState);
44+
ivImg.setImageResource(getArguments().getInt("res"));
45+
tvDes.setText(getArguments().getString("str"));
46+
}
47+
}

app/src/main/java/moe/codeest/ecardflowdemo/PagerFragment.java renamed to app/src/main/java/moe/codeest/ecardflowdemo/fragment/PagerFragment.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package moe.codeest.ecardflowdemo;
1+
package moe.codeest.ecardflowdemo.fragment;
22

33
import android.content.Context;
44
import android.os.Bundle;
@@ -15,6 +15,8 @@
1515
import android.widget.Toast;
1616

1717
import jp.wasabeef.recyclerview.animators.FadeInUpAnimator;
18+
import moe.codeest.ecardflowdemo.adapter.ItemAdapter;
19+
import moe.codeest.ecardflowdemo.R;
1820

1921
/**
2022
* Created by codeest on 2017/1/9.

0 commit comments

Comments
 (0)