Git Product home page Git Product logo

wenldbanner's Introduction

一款商业级Banner控件

既然敢说商业级,那么就支持足够的自定义与扩展性! 实现思路请看这 开发一款商业级Banner控件

效果图:

可以做到以下效果

  • 设置自定义指示器效果
  • 设置指示器位置
  • 设置是否循环
  • 是否可以跳转
  • 页面切换间隔
  • 页面切换持续时间
  • 是否支持手动滑动
  • 是否反向切换页面(切换方向)

use

1、引用:

版本号:

// root build.gradle
repositories {
    jcenter()
    maven { url "https://www.jitpack.io" }
}
// yout project build.gradle
dependencies {
        compile 'com.github.LidongWen:WenldBanner:xxx'
}

2. 使用 WenldBanner:

2.1. xml

```
    <com.wenld.wenldbanner.WenldBanner
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/commonBanner"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:canLoop="true"    //设置是否循环
        app:canTurn="true"  //是否可以跳转
        app:autoTurnTime="5000"// 页面切换间隔
        app:scrollDuration="2000"//页面切换持续时间
        app:isTouchScroll="true" //是否支持手动滑动
        app:reverse="true" // 是否反向切换页面(切换方向)
   />
```

2.2. Java代码中设置属性

        wenldBanner = (WenldBanner) findViewById(R.id.commonBanner);
        //初始化指示器
        defaultPageIndicator = new DefaultPageIndicator(this);
       //设置指示器样式  选中图标与未选中图标
        defaultPageIndicator.setPageIndicator(new int[]{R.mipmap.ic_page_indicator, R.mipmap.ic_page_indicator_focused});

        //设置 view 与 数据
        wenldBanner.setPages(Common.holder, Common.datas);
        wenldBanner
                .setPageIndicatorListener(defaultPageIndicator)  //设置指示器监听
                .setIndicatorView(defaultPageIndicator)  //设置指示器VIew
                .setPageIndicatorAlign(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.CENTER_HORIZONTAL);    //设置指示器位置

还可以设置任意指示器样式,指示器监听事件,指示器位置等等...
指示器样式1 指示器样式2 指示器样式3

3. 自定义拆分使用:

比如实现这个效果:

注意: 先将根目录设置 android:clipChildren="false",在设置AutiTurnViewPager的宽度 给 viewpPager留出一些空隙android:layout_width="250dp" 在代码中设置PageTransformer查看转换效果

xml文件

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   ...
   android:clipChildren="false">

   <com.wenld.wenldbanner.AutoTurnViewPager
       android:id="@+id/autoTurnViewPager"
       android:layout_width="250dp"
       android:clipToPadding="false"
       ... 

   <com.wenld.wenldbanner.DefaultPageIndicator
     ... 
</FrameLayout>

java 要设置PageTransformer否则看不出效果

protected void onCreate(Bundle savedInstanceState) {
    autoTurnViewPager.setPageTransformer(new ZoomOutPageTransformer());
}

v2.0.2

   · 修复点击事件无效bug

· v 2.0.1

   · 优化

· v 2.0.0

   · 更换无限循环方式,使操作更加流畅    · 优化代码,真实循环采用观察者模式

wenldbanner's People

Contributors

lidongwen avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.