Hey Folks Android “O” Dev preview is OUT!!!!! – know more
Ready to test your app against Ohh…
Happy coding 🙂
Hey Folks Android “O” Dev preview is OUT!!!!! – know more
Ready to test your app against Ohh…
Happy coding 🙂
Guys, Good News, Java 8 will be supported in Android . read more
Happen to create a custom viewpager for my project . Thought of sharing it in my blog.
…
<RelativeLayout android:id="@+id/content" android:layout_width="match_parent" android:layout_height="wrap_content"> <au.com.auspost.android.common.view.MiniSlideViewer android:id="@+id/mini_slide" android:layout_width="match_parent" android:layout_height="wrap_content" /> </RelativeLayout>
public class MiniSlideViewer extends RelativeLayout { ViewPager viewPager; CirclePageIndicator pageIndicator; Animation slideUpAnimation; SplashScreenPrefs splashScreenPrefs; private static final float thresholdOffset = 0.5f; private boolean scrollStarted, checkDirection; public MiniSlideViewer(Context context) { // passing listview instance just to achieve the animation effect. this(context, null); } public MiniSlideViewer(Context context, AttributeSet attrs) { super(context, attrs); init(context); } void init(Context context) { inflate(context, R.layout.slide_view_pager, this); viewPager = (ViewPager) findViewById(R.id.pager); pageIndicator = (CirclePageIndicator) findViewById(R.id.pageIndicator); splashScreenPrefs = SplashScreenPrefs.getInstance(); } /** * setPageIndicatorFillColor - set page indicator fill color * * @param fillColor */ public void setPageIndicatorFillColor(int fillColor) { pageIndicator.setFillColor(fillColor); } /** * setPageIndicatorPageColor - set Page indicator page color * * @param pageColor */ public void setPageIndicatorPageColor(int pageColor) { pageIndicator.setPageColor(pageColor); } public void setViewPagerAdapter(MiniSlideAdapter viewPagerAdapter) { viewPager.setAdapter(viewPagerAdapter); pageIndicator.setViewPager(viewPager); TrackingHelper.omnitureDeliveryAddressSlidePageLoad(getContext(), viewPager.getCurrentItem()); } }
MiniSlideAdapter.java
public class MiniSlideAdapter extends PagerAdapter { private final Context context; private static int[] miniViewerBgResources; private static int[] miniViewerImageResources; private static String[] miniViewerStringResources; HideMiniSlidesListener miniSlidesListener; /** * Callback for Skip click in dae slides . */ public interface HideMiniSlidesListener { void onMiniSliderSkipClick(); } public MiniSlideAdapter(Context context, int[] bgResources, int[] imgResources, String[] stringResources) { this.context = context; miniViewerBgResources = bgResources; miniViewerImageResources = imgResources; miniViewerStringResources = stringResources; miniSlidesListener = (HideMiniSlidesListener) context; } @Override public int getCount() { return miniViewerBgResources.length; } @Override public boolean isViewFromObject(View view, Object object) { return view == (object); } @Override public Object instantiateItem(ViewGroup container, int position) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.slide_page_content, container, false); ImageView daeImage = (ImageView) view.findViewById(R.id.slide_image); TextView daeInfoText = (TextView) view.findViewById(R.id.slide_label); View daeSlide = view.findViewById(R.id.content); Button daeSkip = (Button) view.findViewById(R.id.skip); //show the skip button only in the last slide. if (position == getCount() - 1) { daeSkip.setVisibility(View.VISIBLE); } daeSkip.setOnClickListener(view1 -> miniSlidesListener.onMiniSliderSkipClick()); daeImage.setImageResource(miniViewerImageResources[position]); daeInfoText.setText(miniViewerStringResources[position]); daeSlide.setBackgroundColor(ContextCompat.getColor(context, miniViewerBgResources[position])); (container).addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { (container).removeView((LinearLayout) object); } }
All good Now, just invoke in the activity;
final MiniSlideAdapter miniSlideAdapter = new MiniSlideAdapter(this, daeBgResources, daeImageResources, daeStringResources); miniSlideViewer.setViewPagerAdapter(miniSlideAdapter);
I have passed the array of Images and Strings. Just modify the code as per your needs.
Note: For Page Indicator, I have used PageIndicator library. Refer here
Happy coding 🙂