package com.avenwu.deepinandroid;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
public class FeatureActivity extends AppCompatActivity {
View mLeft, mRight;
ViewPager viewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.feature_layout);
viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(new Adapter(getSupportFragmentManager()));
mLeft = findViewById(R.id.iv_left);
mRight = findViewById(R.id.iv_right);
mLeft.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewPager.setCurrentItem(viewPager.getCurrentItem() + 1);
}
});
mRight.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewPager.setCurrentItem(viewPager.getCurrentItem() - 1);
}
});
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i1) {
}
@Override
public void onPageSelected(int i) {
mLeft.setVisibility(i == 0 ? View.GONE : View.VISIBLE);
mRight.setVisibility(i == 2 ? View.GONE : View.VISIBLE);
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
}
class Adapter extends FragmentPagerAdapter {
public Adapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
Fragment fragment = new FragmentItem();
Bundle bundle = new Bundle();
switch (i) {
case 0:
bundle.putString(KEY_LABEL, getString(R.string.page_1_text));
bundle.putInt(KEY_IMAGE_ID, R.drawable.page_1_image);
bundle.putInt(KEY_COLOR_ABOVE, getResources().getColor(R.color.page_1_dark));
bundle.putInt(KEY_COLOR_BELOW, getResources().getColor(R.color.page_1));
break;
case 1:
bundle.putString(KEY_LABEL, getString(R.string.page_2_text));
bundle.putInt(KEY_IMAGE_ID, R.drawable.page_2_image);
bundle.putInt(KEY_COLOR_ABOVE, getResources().getColor(R.color.page_2_dark));
bundle.putInt(KEY_COLOR_BELOW, getResources().getColor(R.color.page_2));
break;
case 2:
bundle.putString(KEY_LABEL, getString(R.string.page_3_text));
bundle.putInt(KEY_IMAGE_ID, R.drawable.page_3_image);
bundle.putInt(KEY_COLOR_ABOVE, getResources().getColor(R.color.page_3_dark));
bundle.putInt(KEY_COLOR_BELOW, getResources().getColor(R.color.page_3));
break;
}
fragment.setArguments(bundle);
return fragment;
}
@Override
public int getCount() {
return 3;
}
}
public static final String KEY_LABEL = "key_label";
public static final String KEY_IMAGE_ID = "key_image_id";
public static final String KEY_COLOR_ABOVE = "key_color_above";
public static final String KEY_COLOR_BELOW = "key_color_below";
public static class FragmentItem extends Fragment {
public FragmentItem() {
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.feature_item_layout, null);
String label = getArguments().getString(KEY_LABEL);
((TextView) view.findViewById(R.id.tv_label)).setText(label);
int color1 = getArguments().getInt(KEY_COLOR_ABOVE);
view.findViewById(R.id.ll_above).setBackgroundColor(color1);
int color2 = getArguments().getInt(KEY_COLOR_BELOW);
view.findViewById(R.id.ll_below).setBackgroundColor(color2);
int image = getArguments().getInt(KEY_IMAGE_ID);
((ImageView) view.findViewById(R.id.iv_image)).setImageResource(image);
return view;
}
}
}