Skip to content

Commit 66f33ca

Browse files
committed
inbox feature pages
1 parent 1250dc4 commit 66f33ca

27 files changed

+1040
-15
lines changed

sample/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ android {
2525
dependencies {
2626
compile fileTree(dir: 'libs', include: ['*.jar'])
2727
compile project(':support')
28-
compile 'com.android.support:appcompat-v7:21.0.2'
28+
compile 'com.android.support:appcompat-v7:22.2.0'
2929
compile 'com.jakewharton:butterknife:6.0.0'
3030
compile 'com.github.avenwu:IndexImageView:1.0.1'
3131
compile 'com.drewnoakes:metadata-extractor:2.7.2'
32-
32+
compile 'com.android.support:support-v4:22.2.0'
3333
}

sample/src/main/AndroidManifest.xml

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="com.avenwu.deepinandroid">
3+
package="com.avenwu.deepinandroid" >
44

55
<uses-permission android:name="android.permission.INTERNET" />
6-
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
6+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
7+
78
<application
89
android:allowBackup="true"
910
android:icon="@drawable/ic_launcher"
1011
android:label="@string/app_name"
11-
android:theme="@style/AppTheme">
12+
android:theme="@style/AppTheme" >
1213
<activity
1314
android:name=".MainActivity"
14-
android:label="@string/app_name">
15+
android:label="@string/app_name" >
1516
<intent-filter>
1617
<action android:name="android.intent.action.MAIN" />
1718

1819
<category android:name="android.intent.category.LAUNCHER" />
1920
</intent-filter>
2021
</activity>
2122
<activity android:name=".ShortcutDemo" />
22-
<activity android:name=".RefreshWidgetActivity"></activity>
23+
<activity android:name=".RefreshWidgetActivity" />
2324
<activity android:name=".QQDraggingCircleDemo" />
2425
<activity
2526
android:name=".TagInputDemo"
@@ -28,12 +29,22 @@
2829
<activity android:name=".ColorFilterDemo" />
2930
<activity
3031
android:name=".MarkdownDemo"
31-
android:label="@string/title_activity_markdown_demo"/>
32-
<activity android:name=".StyledRadioButtonDemo"/>
33-
<activity android:name=".SlidePanelDemo"
34-
android:theme="@style/Theme.AppCompat.NoActionBar"/>
35-
<activity android:name=".AnimatedSubActivity"/>
36-
<activity android:name=".ScaleSubActivity" android:theme="@style/Transparent"/>
32+
android:label="@string/title_activity_markdown_demo" />
33+
<activity android:name=".StyledRadioButtonDemo" />
34+
<activity
35+
android:name=".SlidePanelDemo"
36+
android:theme="@style/Theme.AppCompat.NoActionBar" />
37+
<activity android:name=".AnimatedSubActivity" />
38+
<activity
39+
android:name=".ScaleSubActivity"
40+
android:theme="@style/Transparent" />
41+
<activity android:name=".CustomTabActivity" />
42+
<activity
43+
android:name=".FeatureActivity"
44+
android:configChanges="orientation|keyboardHidden|screenSize"
45+
android:label="@string/title_activity_feature"
46+
android:theme="@style/FullscreenTheme" >
47+
</activity>
3748
</application>
3849

3950
</manifest>
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package com.avenwu.deepinandroid;
2+
3+
import android.content.Context;
4+
import android.os.Bundle;
5+
import android.support.v4.app.Fragment;
6+
import android.support.v4.app.FragmentActivity;
7+
import android.support.v4.app.FragmentTabHost;
8+
import android.view.LayoutInflater;
9+
import android.view.View;
10+
import android.view.ViewGroup;
11+
import android.widget.ImageView;
12+
import android.widget.TabWidget;
13+
import android.widget.TextView;
14+
import android.widget.Toast;
15+
16+
import net.avenwu.support.widget.SimpleTab;
17+
18+
/**
19+
* Created by aven on 5/3/15.
20+
*/
21+
public class CustomTabActivity extends FragmentActivity {
22+
SimpleTab mSimpleTab;
23+
FragmentTabHost mTabHost;
24+
25+
@Override
26+
protected void onCreate(Bundle savedInstanceState) {
27+
super.onCreate(savedInstanceState);
28+
setContentView(R.layout.custom_tab_activity);
29+
ViewGroup viewGroup = (ViewGroup) findViewById(R.id.container);
30+
mSimpleTab = new SimpleTab.Builder(this)
31+
.newItem(new SimpleTab.Item().setLabelWithIcon(R.string.tab_1, R.drawable.ic_launcher))
32+
.newItem(new SimpleTab.Item().setLabelWithIcon(R.string.tab_2, R.drawable.ic_launcher))
33+
.newItem(new SimpleTab.Item().setLabelWithIcon(R.string.tab_3, R.drawable.ic_launcher))
34+
.newItem(new SimpleTab.Item().setLabelWithIcon(R.string.tab_4, R.drawable.ic_launcher))
35+
.setOnTabClickListener(new SimpleTab.OnTabClickListener() {
36+
@Override
37+
public void onItemClick(View view, SimpleTab.Item item, int position) {
38+
Toast.makeText(CustomTabActivity.this, "position=" + position, Toast
39+
.LENGTH_SHORT).show();
40+
}
41+
})
42+
.create();
43+
mSimpleTab.injectInto(viewGroup);
44+
// TabWidget
45+
mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
46+
mTabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent);
47+
48+
mTabHost.addTab(
49+
mTabHost.newTabSpec("tab1").setIndicator("Tab 1", null).setIndicator(getTabIndicator(this, R.string.tab_1, R.drawable.ic_launcher)),
50+
FragmentTab.class, null);
51+
mTabHost.addTab(
52+
mTabHost.newTabSpec("tab2").setIndicator("Tab 2", null).setIndicator
53+
(getTabIndicator(this, R.string.tab_2, R.drawable.ic_launcher)),
54+
FragmentTab.class, null);
55+
mTabHost.addTab(
56+
mTabHost.newTabSpec("tab3").setIndicator("Tab 3", null).setIndicator
57+
(getTabIndicator(this, R.string.tab_3, R.drawable.ic_launcher)),
58+
FragmentTab.class, null);
59+
mTabHost.addTab(
60+
mTabHost.newTabSpec("tab4").setIndicator("Tab 3", null).setIndicator
61+
(getTabIndicator(this, R.string.tab_4, R.drawable.ic_launcher)),
62+
FragmentTab.class, null);
63+
}
64+
65+
private View getTabIndicator(Context context, int title, int icon) {
66+
View view = LayoutInflater.from(context).inflate(R.layout.fragment_tab_item, null);
67+
ImageView iv = (ImageView) view.findViewById(R.id.imageView);
68+
iv.setImageResource(icon);
69+
TextView tv = (TextView) view.findViewById(R.id.textView);
70+
tv.setText(title);
71+
return view;
72+
}
73+
public static class FragmentTab extends Fragment {
74+
75+
@Override
76+
public void onCreate(Bundle savedInstanceState) {
77+
super.onCreate(savedInstanceState);
78+
}
79+
80+
@Override
81+
public View onCreateView(LayoutInflater inflater, ViewGroup container,
82+
Bundle savedInstanceState) {
83+
View v = inflater.inflate(R.layout.fragment_tab_host, container, false);
84+
TextView tv = (TextView) v.findViewById(R.id.text);
85+
tv.setText(this.getTag() + " Content");
86+
return v;
87+
}
88+
}
89+
}
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
package com.avenwu.deepinandroid;
2+
3+
import android.os.Bundle;
4+
import android.support.annotation.Nullable;
5+
import android.support.v4.app.Fragment;
6+
import android.support.v4.app.FragmentManager;
7+
import android.support.v4.app.FragmentPagerAdapter;
8+
import android.support.v4.view.ViewPager;
9+
import android.support.v7.app.AppCompatActivity;
10+
import android.view.LayoutInflater;
11+
import android.view.View;
12+
import android.view.ViewGroup;
13+
import android.widget.ImageView;
14+
import android.widget.TextView;
15+
16+
public class FeatureActivity extends AppCompatActivity {
17+
View mLeft, mRight;
18+
ViewPager viewPager;
19+
20+
@Override
21+
protected void onCreate(Bundle savedInstanceState) {
22+
super.onCreate(savedInstanceState);
23+
24+
setContentView(R.layout.feature_layout);
25+
viewPager = (ViewPager) findViewById(R.id.viewpager);
26+
viewPager.setAdapter(new Adapter(getSupportFragmentManager()));
27+
mLeft = findViewById(R.id.iv_left);
28+
mRight = findViewById(R.id.iv_right);
29+
mLeft.setOnClickListener(new View.OnClickListener() {
30+
@Override
31+
public void onClick(View v) {
32+
viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);
33+
}
34+
});
35+
mRight.setOnClickListener(new View.OnClickListener() {
36+
@Override
37+
public void onClick(View v) {
38+
viewPager.setCurrentItem(viewPager.getCurrentItem() - 1);
39+
}
40+
});
41+
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
42+
@Override
43+
public void onPageScrolled(int i, float v, int i1) {
44+
45+
}
46+
47+
@Override
48+
public void onPageSelected(int i) {
49+
mLeft.setVisibility(i == 0 ? View.GONE : View.VISIBLE);
50+
mRight.setVisibility(i == 2 ? View.GONE : View.VISIBLE);
51+
}
52+
53+
@Override
54+
public void onPageScrollStateChanged(int i) {
55+
56+
}
57+
});
58+
59+
}
60+
61+
class Adapter extends FragmentPagerAdapter {
62+
public Adapter(FragmentManager fm) {
63+
super(fm);
64+
}
65+
66+
@Override
67+
public Fragment getItem(int i) {
68+
Fragment fragment = new FragmentItem();
69+
Bundle bundle = new Bundle();
70+
switch (i) {
71+
case 0:
72+
bundle.putString(KEY_LABEL, getString(R.string.page_1_text));
73+
bundle.putInt(KEY_IMAGE_ID, R.drawable.page_1_image);
74+
bundle.putInt(KEY_COLOR_ABOVE, getResources().getColor(R.color.page_1_dark));
75+
bundle.putInt(KEY_COLOR_BELOW, getResources().getColor(R.color.page_1));
76+
break;
77+
case 1:
78+
bundle.putString(KEY_LABEL, getString(R.string.page_2_text));
79+
bundle.putInt(KEY_IMAGE_ID, R.drawable.page_2_image);
80+
bundle.putInt(KEY_COLOR_ABOVE, getResources().getColor(R.color.page_2_dark));
81+
bundle.putInt(KEY_COLOR_BELOW, getResources().getColor(R.color.page_2));
82+
break;
83+
case 2:
84+
bundle.putString(KEY_LABEL, getString(R.string.page_3_text));
85+
bundle.putInt(KEY_IMAGE_ID, R.drawable.page_3_image);
86+
bundle.putInt(KEY_COLOR_ABOVE, getResources().getColor(R.color.page_3_dark));
87+
bundle.putInt(KEY_COLOR_BELOW, getResources().getColor(R.color.page_3));
88+
break;
89+
}
90+
fragment.setArguments(bundle);
91+
return fragment;
92+
}
93+
94+
@Override
95+
public int getCount() {
96+
return 3;
97+
}
98+
}
99+
100+
public static final String KEY_LABEL = "key_label";
101+
public static final String KEY_IMAGE_ID = "key_image_id";
102+
public static final String KEY_COLOR_ABOVE = "key_color_above";
103+
public static final String KEY_COLOR_BELOW = "key_color_below";
104+
105+
public static class FragmentItem extends Fragment {
106+
public FragmentItem() {
107+
}
108+
109+
@Nullable
110+
@Override
111+
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
112+
View view = inflater.inflate(R.layout.feature_item_layout, null);
113+
String label = getArguments().getString(KEY_LABEL);
114+
((TextView) view.findViewById(R.id.tv_label)).setText(label);
115+
int color1 = getArguments().getInt(KEY_COLOR_ABOVE);
116+
view.findViewById(R.id.ll_above).setBackgroundColor(color1);
117+
int color2 = getArguments().getInt(KEY_COLOR_BELOW);
118+
view.findViewById(R.id.ll_below).setBackgroundColor(color2);
119+
int image = getArguments().getInt(KEY_IMAGE_ID);
120+
((ImageView) view.findViewById(R.id.iv_image)).setImageResource(image);
121+
return view;
122+
}
123+
}
124+
}

sample/src/main/java/com/avenwu/deepinandroid/MainActivity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,14 @@
66
import android.support.v4.app.DialogFragment;
77
import android.support.v4.app.Fragment;
88
import android.support.v7.app.ActionBarActivity;
9+
import android.support.v7.app.AppCompatActivity;
910
import android.view.View;
1011
import android.widget.Toast;
1112

1213
import com.avenwu.annotation.PrintMe;
1314

1415
@PrintMe
15-
public class MainActivity extends ActionBarActivity {
16+
public class MainActivity extends AppCompatActivity {
1617

1718
@Override
1819
protected void onCreate(Bundle savedInstanceState) {

0 commit comments

Comments
 (0)