DevStore首页 > DEV资源 > 源码下载 > 源码详情

BannerSet

 
KellyZong | 2017-03-14 09:44    浏览量(724)    评论(0)    收藏(1)
功能分类:特效 支持平台:Android 运行环境:Android
开发语言:Java 开发工具:Android Studio 源码大小:80.92MB
下载源码 20 人下载

源码简介

A collection of cool banner effects,it contains recyclerView and viewPager,then they can play cycle.(banner,recyclerView,viewPager,可控制性轮播) ;其中包含了recyclerView实现的banner效果,还有viewPager实现的画廊banner效果,其中还包含了自动轮播banner的实现方式

源码截图

DevStore所有源码来自用户上传分享,版权问题及牵扯到商业纠纷均与DevStore无关。

源码片段

github:
https://github.com/zongkaili/BannerSet

##关键代码
 - gallery效果
```java
  private void init() {
        int pagerWidth = (int) (getContext().getResources().getDisplayMetrics().widthPixels * 3.0f / 5.0f);
        mLayoutParams = mViewPager.getLayoutParams();
        if (mLayoutParams == null) {
            mLayoutParams = new ViewGroup.LayoutParams(pagerWidth, ViewGroup.LayoutParams.MATCH_PARENT);
        } else {
            mLayoutParams.width = pagerWidth;
        }
        mViewPager.setLayoutParams(mLayoutParams);
        mViewPager.setPageMargin(-50);
        mViewPager.setPageTransformer(true, new GalleryTransformer());
        mViewPager.setClipChildren(false);
        ViewGroup view = (ViewGroup) mViewPager.getParent();
        if (view != null) {
            view.setClipChildren(false);
            view.setOnTouchListener(new OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    return dispatchTouchEvent(event);
                }
            });
        }
        if(mImageUrls != null){
            mViewPager.setOffscreenPageLimit(mImageUrls.size());
        }
    }
```
其中  mViewPager.setPageTransformer(true, new GalleryTransformer());是设置viewPager切换时的动画效果。
GalleryTransformer类实现了ViewPager.PageTransformer接口,并重写transformPage()方法,具体实现如下:]

```java
  @Override
    public void transformPage(View page, float position) {
        float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));
        float rotate = 20 * Math.abs(position);
        if (position < -1) {

        } else if (position < 0) {
            page.setScaleX(scaleFactor);
            page.setScaleY(scaleFactor);
            page.setRotationY(rotate);
        } else if (position >= 0 && position < 1) {
            page.setScaleX(scaleFactor);
            page.setScaleY(scaleFactor);
            page.setRotationY(-rotate);
        } else if (position >= 1) {
            page.setScaleX(scaleFactor);
            page.setScaleY(scaleFactor);
            page.setRotationY(-rotate);
        }
    }
    
```

##加载图片
Glide和Picasso

##參考
https://github.com/FlyRecker/FlyBanner
  •   赞(1) 赞 +1 赞(1) 已赞
  •   收藏(1) 收藏 +1 已收藏 取消
  •   下载(20)
评论(0)
  • 推荐
  • 审核
  • 收录
  • 获取活力值

源码上传作者

  • 4 能力值
  • 2 源码
  • 0 评测
  • 0 资料