# MaterialBanner **Repository Path**: rtugeek/MaterialBanner ## Basic Information - **Project Name**: MaterialBanner - **Description**: MaterialBanner - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2016-09-25 - **Last Updated**: 2024-11-25 ## Categories & Tags **Categories**: android-modules **Tags**: None ## README # MaterialBanner ## ScreenShot: ![](https://github.com/rtugeek/MaterialBanner/blob/master/screenshot/GIF.gif) ## Idea from Google Trips: ![](https://github.com/rtugeek/MaterialBanner/blob/master/screenshot/googletrips.jpg) ##[Demo APK](https://github.com/rtugeek/MaterialBanner/releases/download/1.0.0/Demo.apk) ### Attrs |attr|format|default| |---|---|---| |indicatorMargin|dimension|10dp| |indicatorInside|boolean|true| |indicatorGravity|flag:left,center,right|left| |match|boolean|false| ### Gradle: [![](https://jitpack.io/v/rtugeek/materialbanner.svg)](https://jitpack.io/#rtugeek/materialbanner) [![API](https://img.shields.io/badge/API-8%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=9) [![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-MaterialBanner-green.svg?style=true)](https://android-arsenal.com/details/1/3118) Step 1. Add the JitPack repository in your root build.gradle at the end of repositories: ``` allprojects { repositories { ... maven { url "https://jitpack.io" } } } ``` Step 2. Add the dependency ``` compile 'com.github.rtugeek:materialbanner:1.0.2' ``` XML ```xml ``` ```java MaterialBanner materialBanner = (MaterialBanner) findViewById(R.id.material_banner); materialBanner.setPages(new SimpleViewHolderCreator(), data) .setIndicator(circlePageIndicator); //set circle indicator materialBanner.setIndicator(new CirclePageIndicator(this)); //indicators: //CirclePageIndicator,IconPageIndicator,LinePageIndicator //Custom indicator view needs to implement com.freegeek.android.materialbanner.view.indicator.PageIndicator ``` [More usage](https://github.com/rtugeek/MaterialBanner/blob/master/app/src/main/java/com/freegeek/android/materialbanner/demo/MainActivity.java) Listener ```java materialBanner.setOnItemClickListener(new MaterialBanner.OnItemClickListener() { @Override public void onItemClick(int position) { } }); materialBanner.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { textView.setText("My hometown: page " + ++position); } @Override public void onPageScrollStateChanged(int state) { } }); ``` ### Customize 1.Create Holder,[See also SimpleHolder](https://github.com/rtugeek/MaterialBanner/blob/master/lib/src/main/java/com/freegeek/android/materialbanner/simple/SimpleHolder.java)[SimpleBannerData](https://github.com/rtugeek/MaterialBanner/blob/master/lib/src/main/java/com/freegeek/android/materialbanner/simple/SimpleBannerData.java) ```java public class YourHolder implements Holder { @Override public View createView(Context context) { View view = LayoutInflater.from(context).inflate(R.layout.simple_banner_item,null); //init your view here return view; } @Override public void updateUI(Context context, int position, YourData data) { //update your view here } } ``` 2.Create HolderCreator ```java public class YourHolderCreator implements ViewHolderCreator{ @Override public YourHolder createHolder() { return new YourHolder(); } } ``` 3.Set your creator ```java materialBanner.setPages(new YourHolderCreator(), list); ``` **Spread the word** ## Thanks to: [Android-ConvenientBanner](https://github.com/saiwu-bigkoo/Android-ConvenientBanner) [ViewPagerIndicator](https://github.com/JakeWharton/ViewPagerIndicator) ## License DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 Copyright (C) 2004 Jack Fu Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. You just DO WHAT THE FUCK YOU WANT TO.