Skip to content

Commit e2ce5de

Browse files
committed
commit change
1 parent b119b58 commit e2ce5de

34 files changed

+620
-6
lines changed

app/build.gradle

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ android {
2121
targetSdkVersion 25
2222
versionCode 1
2323
versionName "1.0.0"
24+
25+
renderscriptTargetApi 19
26+
renderscriptSupportModeEnabled true
27+
2428
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
2529
}
2630
buildTypes {
@@ -67,6 +71,8 @@ ext{
6771
butterknife_version = '8.4.0'
6872
loopview_version = '1.0.2'
6973
circleimageview_version = '2.1.0'
74+
banner_version = '1.3.3'
75+
nineoldandroids_version = '2.4.0'
7076

7177
}
7278

@@ -82,14 +88,22 @@ dependencies {
8288
compile "com.squareup.retrofit2:converter-gson:${retrofitVersion}"
8389
compile "com.squareup.retrofit2:adapter-rxjava:${retrofitVersion}"
8490
compile "com.android.support:appcompat-v7:${supportVersion}"
91+
compile "com.android.support:support-v4:${supportVersion}"
8592
compile "com.github.dmytrodanylyk.circular-progress-button:library:${cpbVersion}"
8693
compile "io.reactivex:rxandroid:${rxandroid_version}"
8794
compile "io.reactivex:rxjava:${rxjava_version}"
8895
compile "jp.wasabeef:glide-transformations:${glide_version}"
8996
compile "com.dalong:loopview:${loopview_version}"
9097
compile "de.hdodenhof:circleimageview:${circleimageview_version}"
98+
compile "com.youth.banner:banner:${banner_version}"
9199

92100
compile "com.jakewharton:butterknife:${butterknife_version}"
93101
annotationProcessor "com.jakewharton:butterknife-compiler:${butterknife_version}"
94102
testCompile "junit:junit:${junitVersion}"
103+
104+
compile "com.nineoldandroids:library:${nineoldandroids_version}"
105+
compile 'com.daimajia.easing:library:1.0.0@aar'
106+
compile 'com.daimajia.androidanimations:library:1.1.2@aar'
107+
compile 'com.daimajia.androidviewhover:library:1.0.4@aar'
108+
compile 'com.makeramen:roundedimageview:1.3.0'
95109
}

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:tools="http://schemas.android.com/tools"
34
package="com.code4a.jlibrarydemo">
45

56
<uses-permission android:name="android.permission.INTERNET"/>
@@ -8,6 +9,7 @@
89
<application
910
android:name=".JLibraryApp"
1011
android:allowBackup="true"
12+
tools:replace="android:icon"
1113
android:icon="@mipmap/ic_launcher"
1214
android:label="@string/app_name"
1315
android:supportsRtl="true"

app/src/main/java/com/code4a/jlibrarydemo/home/HomeActivity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import com.code4a.jlibrarydemo.R;
1515
import com.code4a.jlibrarydemo.data.HomeBottomTab;
1616
import com.code4a.jlibrarydemo.home.frag.category.CategoryFragment;
17+
import com.code4a.jlibrarydemo.home.frag.home.HomeFragment;
1718
import com.code4a.jlibrarydemo.home.frag.hot.HotFragment;
1819
import com.code4a.jlibrarydemo.home.frag.mine.MineFragment;
1920
import com.code4a.jlibrarydemo.widget.FragmentTabHost;
@@ -39,7 +40,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
3940
}
4041

4142
private void initTab() {
42-
HomeBottomTab tab_home = new HomeBottomTab(MineFragment.class, R.string.home, R.drawable.selector_icon_home);
43+
HomeBottomTab tab_home = new HomeBottomTab(HomeFragment.class, R.string.home, R.drawable.selector_icon_home);
4344
HomeBottomTab tab_hot = new HomeBottomTab(HotFragment.class, R.string.hot, R.drawable.selector_icon_hot);
4445
HomeBottomTab tab_category = new HomeBottomTab(CategoryFragment.class, R.string.catagory, R.drawable.selector_icon_category);
4546
HomeBottomTab tab_mine = new HomeBottomTab(MineFragment.class, R.string.mine, R.drawable.selector_icon_mine);
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package com.code4a.jlibrarydemo.home.frag.home;
2+
3+
import android.os.Bundle;
4+
import android.support.v4.app.FragmentPagerAdapter;
5+
import android.support.v4.view.ViewPager;
6+
import android.view.View;
7+
8+
import com.code4a.jlibrary.base.BaseFragment;
9+
import com.code4a.jlibrarydemo.R;
10+
import com.code4a.jlibrarydemo.home.frag.home.four.FourFragment;
11+
import com.code4a.jlibrarydemo.home.frag.home.one.OneFragment;
12+
import com.code4a.jlibrarydemo.widget.ViewPagerIndicator;
13+
14+
import java.util.ArrayList;
15+
import java.util.List;
16+
17+
import butterknife.BindView;
18+
19+
20+
public class HomeFragment extends BaseFragment {
21+
22+
@BindView(R.id.vp)
23+
ViewPager viewPager;
24+
@BindView(R.id.indicator)
25+
ViewPagerIndicator indicator;
26+
27+
private FragmentPagerAdapter mAdapter;
28+
private List<BaseFragment> mList;
29+
private List<String> mDatas;
30+
private final int itemCount = 4;
31+
32+
@Override
33+
protected void initView(View view, Bundle savedInstanceState) {
34+
mList = new ArrayList<>(itemCount);
35+
mList.add(OneFragment.getInstance());
36+
mList.add(FourFragment.getInstance());
37+
mList.add(FourFragment.getInstance());
38+
mList.add(FourFragment.getInstance());
39+
mDatas = new ArrayList<>(itemCount);
40+
for (int i = 0; i < itemCount; i++) {
41+
mDatas.add("i=" + i);
42+
}
43+
44+
mAdapter = new FragmentPagerAdapter(getFragmentManager()) {
45+
@Override
46+
public BaseFragment getItem(int position) {
47+
return mList.get(position);
48+
}
49+
50+
@Override
51+
public int getCount() {
52+
return mList.size();
53+
}
54+
};
55+
56+
viewPager.setAdapter(mAdapter);
57+
//将viewpager与indicator绑定
58+
indicator.setDatas(mDatas);
59+
indicator.setViewPager(viewPager);
60+
}
61+
62+
@Override
63+
protected int getLayoutId() {
64+
return R.layout.fragment_home;
65+
}
66+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.code4a.jlibrarydemo.home.frag.home.four;
2+
3+
import android.os.Bundle;
4+
import android.view.View;
5+
6+
import com.code4a.jlibrary.base.BaseFragment;
7+
import com.code4a.jlibrarydemo.R;
8+
9+
10+
public class FourFragment extends BaseFragment {
11+
12+
public static FourFragment getInstance() {
13+
FourFragment fourFragment = new FourFragment();
14+
return fourFragment;
15+
}
16+
17+
@Override
18+
protected void initView(View view, Bundle savedInstanceState) {
19+
20+
}
21+
22+
@Override
23+
protected int getLayoutId() {
24+
return R.layout.fragment_mine;
25+
}
26+
}
Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
package com.code4a.jlibrarydemo.home.frag.home.one;
2+
3+
import android.content.Intent;
4+
import android.net.Uri;
5+
import android.os.Bundle;
6+
import android.view.LayoutInflater;
7+
import android.view.View;
8+
import android.widget.ImageView;
9+
import android.widget.Toast;
10+
11+
import com.bumptech.glide.Glide;
12+
import com.code4a.jlibrary.base.BaseFragment;
13+
import com.code4a.jlibrary.utils.ToastUtil;
14+
import com.code4a.jlibrarydemo.R;
15+
import com.daimajia.androidanimations.library.Techniques;
16+
import com.daimajia.androidanimations.library.YoYo;
17+
import com.daimajia.androidviewhover.BlurLayout;
18+
import com.youth.banner.Banner;
19+
import com.youth.banner.BannerConfig;
20+
import com.youth.banner.Transformer;
21+
import com.youth.banner.listener.OnBannerClickListener;
22+
import com.youth.banner.listener.OnLoadImageListener;
23+
24+
import butterknife.BindView;
25+
26+
27+
public class OneFragment extends BaseFragment {
28+
29+
@BindView(R.id.banner)
30+
Banner banner;
31+
32+
@BindView(R.id.blur_layout)
33+
BlurLayout mSampleLayout;
34+
@BindView(R.id.blur_layout2)
35+
BlurLayout mSampleLayout2;
36+
@BindView(R.id.blur_layout3)
37+
BlurLayout mSampleLayout3;
38+
@BindView(R.id.blur_layout4)
39+
BlurLayout mSampleLayout4;
40+
41+
String[] images,titles;
42+
43+
public static OneFragment getInstance() {
44+
OneFragment oneFragment = new OneFragment();
45+
return oneFragment;
46+
}
47+
48+
@Override
49+
protected void initView(View view, Bundle savedInstanceState) {
50+
initBanner();
51+
initHoverView();
52+
}
53+
54+
private void initHoverView() {
55+
BlurLayout.setGlobalDefaultDuration(450);
56+
View hover = LayoutInflater.from(getHoldingActivity()).inflate(R.layout.hover_sample, null);
57+
hover.findViewById(R.id.heart).setOnClickListener(new View.OnClickListener() {
58+
@Override
59+
public void onClick(View v) {
60+
YoYo.with(Techniques.Tada)
61+
.duration(550)
62+
.playOn(v);
63+
}
64+
});
65+
hover.findViewById(R.id.share).setOnClickListener(new View.OnClickListener() {
66+
@Override
67+
public void onClick(View v) {
68+
YoYo.with(Techniques.Swing)
69+
.duration(550)
70+
.playOn(v);
71+
}
72+
});
73+
mSampleLayout.setHoverView(hover);
74+
mSampleLayout.setBlurDuration(550);
75+
mSampleLayout.addChildAppearAnimator(hover, R.id.heart, Techniques.FlipInX, 550, 0);
76+
mSampleLayout.addChildAppearAnimator(hover, R.id.share, Techniques.FlipInX, 550, 250);
77+
mSampleLayout.addChildAppearAnimator(hover, R.id.more, Techniques.FlipInX, 550, 500);
78+
79+
mSampleLayout.addChildDisappearAnimator(hover, R.id.heart, Techniques.FlipOutX, 550, 500);
80+
mSampleLayout.addChildDisappearAnimator(hover, R.id.share, Techniques.FlipOutX, 550, 250);
81+
mSampleLayout.addChildDisappearAnimator(hover, R.id.more, Techniques.FlipOutX, 550, 0);
82+
83+
mSampleLayout.addChildAppearAnimator(hover, R.id.description, Techniques.FadeInUp);
84+
mSampleLayout.addChildDisappearAnimator(hover, R.id.description, Techniques.FadeOutDown);
85+
86+
View hover2 = LayoutInflater.from(getHoldingActivity()).inflate(R.layout.hover_sample2, null);
87+
hover2.findViewById(R.id.avatar).setOnClickListener(new View.OnClickListener() {
88+
@Override
89+
public void onClick(View v) {
90+
Toast.makeText(getHoldingActivity(), "Pretty Cool, Right?", Toast.LENGTH_SHORT).show();
91+
}
92+
});
93+
mSampleLayout2.setHoverView(hover2);
94+
95+
mSampleLayout2.addChildAppearAnimator(hover2, R.id.description, Techniques.FadeInUp);
96+
mSampleLayout2.addChildDisappearAnimator(hover2, R.id.description, Techniques.FadeOutDown);
97+
mSampleLayout2.addChildAppearAnimator(hover2, R.id.avatar, Techniques.DropOut, 1200);
98+
mSampleLayout2.addChildDisappearAnimator(hover2, R.id.avatar, Techniques.FadeOutUp);
99+
mSampleLayout2.setBlurDuration(1000);
100+
101+
View hover3 = LayoutInflater.from(getHoldingActivity()).inflate(R.layout.hover_sample3, null);
102+
mSampleLayout3.setHoverView(hover3);
103+
mSampleLayout3.addChildAppearAnimator(hover3, R.id.eye, Techniques.Landing);
104+
mSampleLayout3.addChildDisappearAnimator(hover3, R.id.eye, Techniques.TakingOff);
105+
mSampleLayout3.enableZoomBackground(true);
106+
mSampleLayout3.setBlurDuration(1200);
107+
108+
View hover4 = LayoutInflater.from(getHoldingActivity()).inflate(R.layout.hover_sample4,null);
109+
mSampleLayout4.setHoverView(hover4);
110+
mSampleLayout4.addChildAppearAnimator(hover4, R.id.cat, Techniques.SlideInLeft);
111+
mSampleLayout4.addChildAppearAnimator(hover4, R.id.mail, Techniques.SlideInRight);
112+
113+
mSampleLayout4.addChildDisappearAnimator(hover4, R.id.cat, Techniques.SlideOutLeft);
114+
mSampleLayout4.addChildDisappearAnimator(hover4, R.id.mail, Techniques.SlideOutRight);
115+
116+
mSampleLayout4.addChildAppearAnimator(hover4, R.id.content, Techniques.BounceIn);
117+
mSampleLayout4.addChildDisappearAnimator(hover4, R.id.content, Techniques.FadeOutUp);
118+
119+
120+
hover4.findViewById(R.id.cat).setOnClickListener(new View.OnClickListener() {
121+
@Override
122+
public void onClick(View v) {
123+
Intent getWebPage = new Intent(Intent.ACTION_VIEW, Uri.parse("https://github.com/code4a"));
124+
startActivity(getWebPage);
125+
}
126+
});
127+
128+
hover4.findViewById(R.id.mail).setOnClickListener(new View.OnClickListener() {
129+
@Override
130+
public void onClick(View v) {
131+
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
132+
133+
emailIntent.setType("plain/text");
134+
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"[email protected]"});
135+
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "About AndroidViewHover");
136+
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "I have a good idea about this project..");
137+
138+
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
139+
}
140+
});
141+
}
142+
143+
private void initBanner() {
144+
images= getResources().getStringArray(R.array.url);
145+
titles= getResources().getStringArray(R.array.title);
146+
147+
//显示圆形指示器和标题
148+
banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR_TITLE_INSIDE);
149+
//设置标题列表
150+
banner.setBannerTitle(titles);
151+
//设置动画
152+
banner.setBannerAnimation(Transformer.CubeOut);
153+
/**
154+
* 可以选择设置图片网址或者资源文件,默认用Glide加载
155+
* 如果你想设置默认图片就在xml里设置default_image
156+
* banner.setImages(images);
157+
*/
158+
//如果你想用自己项目的图片加载,那么----->自定义图片加载框架
159+
banner.setImages(images, new OnLoadImageListener() {
160+
@Override
161+
public void OnLoadImage(ImageView view, Object url) {
162+
/**
163+
* 这里你可以根据框架灵活设置
164+
*/
165+
Glide.with(getHoldingActivity())
166+
.load(url)
167+
.into(view);
168+
}
169+
});
170+
//设置点击事件
171+
banner.setOnBannerClickListener(new OnBannerClickListener() {
172+
@Override
173+
public void OnBannerClick(int position) {
174+
ToastUtil.showShort(getHoldingActivity(), "你点击了:"+position);
175+
}
176+
});
177+
}
178+
179+
@Override
180+
protected int getLayoutId() {
181+
return R.layout.fragment_home_one;
182+
}
183+
}

app/src/main/java/com/code4a/jlibrarydemo/splash/SplashFragment.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,9 @@ public void onResume() {
103103
mPresenter.start();
104104
}
105105

106+
@Override
107+
public void onPause() {
108+
super.onPause();
109+
mPresenter.cancel();
110+
}
106111
}

app/src/main/java/com/code4a/jlibrarydemo/splash/SplashInteractor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,6 @@ interface LoadSplashResListener {
1818
void getRes(int page, int size, LoadSplashResListener listener);
1919

2020
void getRes(LoadSplashResListener listener);
21+
22+
void cancel();
2123
}

0 commit comments

Comments
 (0)