1 package com.davemorrissey.labs.subscaleview.test.viewpager; 2 3 import android.os.Bundle; 4 import android.support.v4.app.Fragment; 5 import android.support.v4.app.FragmentManager; 6 import android.support.v4.app.FragmentStatePagerAdapter; 7 import android.support.v4.view.ViewPager; 8 import android.view.View; 9 10 import com.davemorrissey.labs.subscaleview.test.AbstractPagesActivity; 11 import com.davemorrissey.labs.subscaleview.test.Page; 12 import com.davemorrissey.labs.subscaleview.test.R; 13 14 import java.util.Arrays; 15 16 import static com.davemorrissey.labs.subscaleview.test.R.layout.view_pager; 17 import static com.davemorrissey.labs.subscaleview.test.R.string.pager_p1_subtitle; 18 import static com.davemorrissey.labs.subscaleview.test.R.string.pager_p1_text; 19 import static com.davemorrissey.labs.subscaleview.test.R.string.pager_p2_subtitle; 20 import static com.davemorrissey.labs.subscaleview.test.R.string.pager_p2_text; 21 import static com.davemorrissey.labs.subscaleview.test.R.string.pager_title; 22 23 public class ViewPagerActivity extends AbstractPagesActivity { 24 25 private static final String[] IMAGES = { "sanmartino.jpg", "swissroad.jpg" }; 26 27 public ViewPagerActivity() { 28 super(pager_title, view_pager, Arrays.asList( 29 new Page(pager_p1_subtitle, pager_p1_text), 30 new Page(pager_p2_subtitle, pager_p2_text) 31 )); 32 } 33 34 @Override 35 protected void onCreate(Bundle savedInstanceState) { 36 super.onCreate(savedInstanceState); 37 ViewPager horizontalPager = findViewById(R.id.horizontal_pager); 38 horizontalPager.setAdapter(new ScreenSlidePagerAdapter(getSupportFragmentManager())); 39 ViewPager verticalPager = findViewById(R.id.vertical_pager); 40 verticalPager.setAdapter(new ScreenSlidePagerAdapter(getSupportFragmentManager())); 41 } 42 43 @Override 44 public void onBackPressed() { 45 ViewPager viewPager = findViewById(getPage() == 0 ? R.id.horizontal_pager : R.id.vertical_pager); 46 if (viewPager.getCurrentItem() == 0) { 47 super.onBackPressed(); 48 } else { 49 viewPager.setCurrentItem(viewPager.getCurrentItem() - 1); 50 } 51 } 52 53 @Override 54 protected void onPageChanged(int page) { 55 if (getPage() == 0) { 56 findViewById(R.id.horizontal_pager).setVisibility(View.VISIBLE); 57 findViewById(R.id.vertical_pager).setVisibility(View.GONE); 58 } else { 59 findViewById(R.id.horizontal_pager).setVisibility(View.GONE); 60 findViewById(R.id.vertical_pager).setVisibility(View.VISIBLE); 61 } 62 } 63 64 private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter { 65 ScreenSlidePagerAdapter(FragmentManager fm) { 66 super(fm); 67 } 68 69 @Override 70 public Fragment getItem(int position) { 71 ViewPagerFragment fragment = new ViewPagerFragment(); 72 fragment.setAsset(IMAGES[position]); 73 return fragment; 74 } 75 76 @Override 77 public int getCount() { 78 return IMAGES.length; 79 } 80 } 81 82 } 83