MCPcopy Index your code
hub / github.com/LidongWen/WenldBanner

github.com/LidongWen/WenldBanner @2.0.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.0.2 ↗ · + Follow
207 symbols 476 edges 22 files 30 documented · 14% updated 8y ago2.0.2 · 2018-01-03★ 1687 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

一款商业级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文件

```

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

<com.wenld.wenldbanner.DefaultPageIndicator
  ...


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

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

v2.0.2

· 修复点击事件无效bug

· v 2.0.1

· 优化

· v 2.0.0

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

Extension points exported contracts — how you extend this code

PageIndicatorListener (Interface)
Author: 温利东 on 2017/11/6 15:03. blog: http://www.jianshu.com/u/99f514ea81b3 github: https://github.com/LidongWen [4 implementers]
wenldbanner/src/main/java/com/wenld/wenldbanner/PageIndicatorListener.java
OnPageClickListener (Interface)
Author: 温利东 on 2017/11/9 14:41. blog: http://www.jianshu.com/u/99f514ea81b3 github: https://github.com/LidongWen [1 implementers]
wenldbanner/src/main/java/com/wenld/wenldbanner/OnPageClickListener.java
Holder (Interface)
Author: 温利东 on 2017/11/2 16:20. blog: http://www.jianshu.com/u/99f514ea81b3 github: https://github.com/LidongWen [1 implementers]
wenldbanner/src/main/java/com/wenld/wenldbanner/helper/Holder.java

Core symbols most depended-on inside this repo

getView
called by 26
wenldbanner/src/main/java/com/wenld/wenldbanner/helper/ViewHolder.java
getmOuterPageChangeListeners
called by 8
wenldbanner/src/main/java/com/wenld/wenldbanner/LoopViewPager.java
getRealCount
called by 8
wenldbanner/src/main/java/com/wenld/wenldbanner/adapter/WenldPagerAdapter.java
getCurrentItem
called by 6
wenldbanner/src/main/java/com/wenld/wenldbanner/LoopViewPager.java
getAdapter
called by 6
wenldbanner/src/main/java/com/wenld/wenldbanner/LoopViewPager.java
adapterPostiton2RealDataPosition
called by 6
wenldbanner/src/main/java/com/wenld/wenldbanner/adapter/WenldPagerAdapter.java
startTurn
called by 5
wenldbanner/src/main/java/com/wenld/wenldbanner/AutoTurnViewPager.java
stopTurning
called by 4
wenldbanner/src/main/java/com/wenld/wenldbanner/AutoTurnViewPager.java

Shape

Method 184
Class 20
Interface 3

Languages

Java100%

Modules by API surface

wenldbanner/src/main/java/com/wenld/wenldbanner/WenldBanner.java30 symbols
wenldbanner/src/main/java/com/wenld/wenldbanner/helper/ViewHolder.java28 symbols
wenldbanner/src/main/java/com/wenld/wenldbanner/LoopViewPager.java28 symbols
wenldbanner/src/main/java/com/wenld/wenldbanner/AutoTurnViewPager.java25 symbols
wenldbanner/src/main/java/com/wenld/wenldbanner/adapter/WenldPagerAdapter.java22 symbols
wenldbanner/src/main/java/com/wenld/wenldbanner/DefaultPageIndicator.java10 symbols
app/src/main/java/com/wenld/wenldbanner01/indicator/CustomIndicator.java8 symbols
wenldbanner/src/main/java/com/wenld/wenldbanner/helper/ViewPagerScroller.java7 symbols
wenldbanner/src/main/java/com/wenld/wenldbanner/helper/UIContact.java6 symbols
wenldbanner/src/main/java/com/wenld/wenldbanner/MyLog.java6 symbols
app/src/main/java/com/wenld/wenldbanner01/CommonBannerActivity.java6 symbols
app/src/main/java/com/wenld/wenldbanner01/MainActivity.java5 symbols

For agents

$ claude mcp add WenldBanner \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page