Android Open Source - cube-sdk Slider Banner From Project Back to project page cube-sdk .
License The source code is released under:
Apache License
If you think the Android project cube-sdk listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package in.srain.cube.views.banner;
/ * w w w . j a v a 2 s . c o m * /
import android.content.Context;
import android.content.res.TypedArray;
import android.support.v4.view.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.RelativeLayout;
import in.srain.cube.R;
import in.srain.cube.views.DotView;
import in.srain.cube.views.mix.AutoPlayer;
public class SliderBanner extends RelativeLayout {
private ViewPager mViewPager;
private BannerAdapter mBannerAdapter;
private ViewPager.OnPageChangeListener mOnPageChangeListener;
private PagerIndicator mPagerIndicator;
private AutoPlayer mAutoPlayer;
protected int mIdForViewPager;
protected int mIdForIndicator;
protected int mTimeInterval = 2000;
public SliderBanner(Context context) {
this (context, null);
}
public SliderBanner(Context context, AttributeSet attrs) {
super (context, attrs);
TypedArray arr = context.obtainStyledAttributes(attrs, R.styleable.SliderBanner, 0, 0);
if (arr != null) {
if (arr.hasValue(R.styleable.SliderBanner_slider_banner_pager)) {
mIdForViewPager = arr.getResourceId(R.styleable.SliderBanner_slider_banner_pager, 0);
}
if (arr.hasValue(R.styleable.SliderBanner_slider_banner_indicator)) {
mIdForIndicator = arr.getResourceId(R.styleable.SliderBanner_slider_banner_indicator, 0);
}
mTimeInterval = arr.getInt(R.styleable.SliderBanner_slider_banner_time_interval, mTimeInterval);
arr.recycle();
}
}
@Override
protected void onFinishInflate() {
mViewPager = (ViewPager) findViewById(mIdForViewPager);
mPagerIndicator = (DotView) findViewById(mIdForIndicator);
mViewPager.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
requestDisallowInterceptTouchEvent(true);
return false;
}
});
mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i2) {
if (mOnPageChangeListener != null) {
mOnPageChangeListener.onPageScrolled(i, v, i2);
}
}
@Override
public void onPageSelected(int position) {
if (mPagerIndicator != null) {
mPagerIndicator.setSelected(mBannerAdapter.getPositionForIndicator(position));
}
mAutoPlayer.skipNext();
if (mOnPageChangeListener != null) {
mOnPageChangeListener.onPageSelected(position);
}
}
@Override
public void onPageScrollStateChanged(int i) {
if (mOnPageChangeListener != null) {
mOnPageChangeListener.onPageScrollStateChanged(i);
}
}
});
mAutoPlayer = new AutoPlayer(mGalleryPlayable).setPlayRecycleMode(AutoPlayer.PlayRecycleMode.play_back);
mAutoPlayer.setTimeInterval(mTimeInterval);
}
public void setTimeInterval(int interval) {
mAutoPlayer.setTimeInterval(interval);
}
public void setAdapter(BannerAdapter adapter) {
mBannerAdapter = adapter;
mViewPager.setAdapter(adapter);
}
public void beginPlay() {
mAutoPlayer.play();
}
public void setOnPageChangeListener(ViewPager.OnPageChangeListener listener) {
mOnPageChangeListener = listener;
}
public void setDotNum(int num) {
if (mPagerIndicator != null) {
mPagerIndicator.setNum(num);
}
}
private AutoPlayer.Playable mGalleryPlayable = new AutoPlayer.Playable() {
@Override
public void playTo(int to) {
mViewPager.setCurrentItem(to, true);
}
@Override
public void playNext() {
mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1, true);
}
@Override
public void playPrevious() {
mViewPager.setCurrentItem(mViewPager.getCurrentItem() - 1, true);
}
@Override
public int getTotal() {
return mBannerAdapter.getCount();
}
@Override
public int getCurrent() {
return mViewPager.getCurrentItem();
}
};
}
Java Source Code List in.srain.cube.Cube.java in.srain.cube.app.CubeFragmentActivity.java in.srain.cube.app.CubeFragment.java in.srain.cube.app.FragmentParam.java in.srain.cube.app.ICubeFragment.java in.srain.cube.app.XActivity.java in.srain.cube.app.lifecycle.IComponentContainer.java in.srain.cube.app.lifecycle.LifeCycleComponentManager.java in.srain.cube.app.lifecycle.LifeCycleComponent.java in.srain.cube.cache.CacheInfo.java in.srain.cube.cache.CacheManager.java in.srain.cube.cache.CacheResultType.java in.srain.cube.cache.ICacheAble.java in.srain.cube.cache.IFileCache.java in.srain.cube.cache.QueryHandler.java in.srain.cube.cache.Query.java in.srain.cube.concurrent.BlockingDeque.java in.srain.cube.concurrent.Deque.java in.srain.cube.concurrent.LinkedBlockingDeque.java in.srain.cube.concurrent.SimpleExecutor.java in.srain.cube.concurrent.SimpleTask.java in.srain.cube.file.DiskLruCache.java in.srain.cube.file.FileUtil.java in.srain.cube.file.LruFileCache.java in.srain.cube.image.CubeImageView.java in.srain.cube.image.ImageLoaderFactory.java in.srain.cube.image.ImageLoader.java in.srain.cube.image.ImagePerformanceStatistics.java in.srain.cube.image.ImageProvider.java in.srain.cube.image.ImageReuseInfoManger.java in.srain.cube.image.ImageReuseInfo.java in.srain.cube.image.ImageTaskStatistics.java in.srain.cube.image.ImageTask.java in.srain.cube.image.drawable.RecyclingBitmapDrawable.java in.srain.cube.image.drawable.RoundedDrawable.java in.srain.cube.image.iface.ImageFileProvider.java in.srain.cube.image.iface.ImageLoadHandler.java in.srain.cube.image.iface.ImageLoadProgressHandler.java in.srain.cube.image.iface.ImageMemoryCache.java in.srain.cube.image.iface.ImageResizer.java in.srain.cube.image.iface.ImageTaskExecutor.java in.srain.cube.image.impl.DefaultImageLoadHandler.java in.srain.cube.image.impl.DefaultImageResizer.java in.srain.cube.image.impl.DefaultImageTaskExecutor.java in.srain.cube.image.impl.DefaultMemoryCache.java in.srain.cube.image.impl.LruImageFileProvider.java in.srain.cube.image.impl.SimpleDownloader.java in.srain.cube.mints.base.BlockMenuFragment.java in.srain.cube.mints.base.DemoBaseActivity.java in.srain.cube.mints.base.TitleBaseActivity.java in.srain.cube.mints.base.TitleBaseFragment.java in.srain.cube.mints.base.TitleHeaderBar.java in.srain.cube.request.CacheAbleRequestDefaultHandler.java in.srain.cube.request.CacheAbleRequestHandler.java in.srain.cube.request.CacheAbleRequestJsonHandler.java in.srain.cube.request.CacheAbleRequest.java in.srain.cube.request.FailData.java in.srain.cube.request.ICacheAbleRequest.java in.srain.cube.request.IRequest.java in.srain.cube.request.JsonData.java in.srain.cube.request.RequestBase.java in.srain.cube.request.RequestCacheManager.java in.srain.cube.request.RequestData.java in.srain.cube.request.RequestDefaultHandler.java in.srain.cube.request.RequestFinishHandler.java in.srain.cube.request.RequestHandler.java in.srain.cube.request.RequestJsonHandler.java in.srain.cube.request.SimpleJsonRequest.java in.srain.cube.request.SimpleRequestManager.java in.srain.cube.request.SimpleRequest.java in.srain.cube.uri.CustomizedUri.java in.srain.cube.util.Debug.java in.srain.cube.util.Encrypt.java in.srain.cube.util.Env.java in.srain.cube.util.LocalDisplay.java in.srain.cube.util.NetworkStatusManager.java in.srain.cube.util.ResourceMan.java in.srain.cube.util.SystemWatcher.java in.srain.cube.util.Version.java in.srain.cube.views.DotView.java in.srain.cube.views.IScrollHeaderFrameHandler.java in.srain.cube.views.MoreActionView.java in.srain.cube.views.ScrollHeaderFrame.java in.srain.cube.views.banner.BannerAdapter.java in.srain.cube.views.banner.PagerIndicator.java in.srain.cube.views.banner.SliderBanner.java in.srain.cube.views.block.BlockListAdapter.java in.srain.cube.views.block.BlockListView.java in.srain.cube.views.list.ListPageInfo.java in.srain.cube.views.list.ListViewDataAdapterBase.java in.srain.cube.views.list.ListViewDataAdapter.java in.srain.cube.views.list.PagedListDataModel.java in.srain.cube.views.list.PagedListViewDataAdapter.java in.srain.cube.views.list.ViewHolderBase.java in.srain.cube.views.list.ViewHolderCreator.java in.srain.cube.views.mix.AutoPlayer.java in.srain.cube.views.pager.PageIndicator.java in.srain.cube.views.pager.TabPageIndicator.java