LoopViewPagerLayout無限輪播 項目地址:https://github.com/why168/LoopViewPagerLayout " " 支持三種動畫; 支持修改輪播的速度; 支持修改滑動速率; 支持點擊事件回調監聽; 支持自定義圖片載入方式; 支持自定義ImageView圖片; ...
LoopViewPagerLayout無限輪播
- 支持三種動畫;
- 支持修改輪播的速度;
- 支持修改滑動速率;
- 支持點擊事件回調監聽;
- 支持自定義圖片載入方式;
- 支持自定義ImageView圖片;
- 支持addHeaderView方式;
- 支持小紅點指示器三種位置擺放;
- 指示器小紅點動態移動;
- 防閃屏花屏。
效果圖
Gradle
Step 1. Add the JitPack repository to your build file
dependencies {
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
}
Step 2. Add the dependency
dependencies {
compile 'com.github.why168:LoopViewPagerLayout:2.0.5'
}
代碼混淆
#LoopViewPagerLayout
-dontwarn com.github.why168
-keep class com.github.why168
API調用順序
- setLoop_ms:輪播的速度(毫秒)
- setLoop_duration:滑動的速率(毫秒)
- setLoop_style:輪播的樣式(枚舉值: -1預設empty,1深度1depth,2縮小zoom)
- setIndicatorLocation(IndicatorLocation.Right):小紅點位置(枚舉值: 1:left,0:depth, 2:right)
- initializeData(Content):初始化
- setOnLoadImageViewListener(OnLoadImageViewListener):自定義圖片載入&自定義ImageView圖片
- setOnBannerItemClickListener(OnBannerItemClickListener):圖片點擊事件
- setLoopData(ArrayList
):banner數據 - startLoop():開始輪播
- stopLoop():停止輪播,務必在onDestory中調用
javadoc
https://jitpack.io/com/github/why168/LoopViewPagerLayout/v2.0.5/javadoc/
佈局 LoopViewPagerLayout
<?xml version="1.0" encoding="utf-8"?>
<com.github.why168.LoopViewPagerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mLoopViewPagerLayout"
android:layout_width="match_parent"
android:layout_height="200dp" />
更優雅地使用API-調用順序不能亂
mLoopViewPagerLayout = (LoopViewPagerLayout)findViewById(R.id.mLoopViewPagerLayout);
mLoopViewPagerLayout.setLoop_ms(2000);//輪播的速度(毫秒)
mLoopViewPagerLayout.setLoop_duration(1000);//滑動的速率(毫秒)
mLoopViewPagerLayout.setLoop_style(LoopStyle.Empty);//輪播的樣式-預設empty
mLoopViewPagerLayout.setIndicatorLocation(IndicatorLocation.Center);//指示器位置-中Center
mLoopViewPagerLayout.initializeData(mActivity);//初始化數據
ArrayList<LoopViewPagerLayout.BannerInfo> data = new ArrayList<>();
data.add(new LoopViewPagerLayout.BannerInfo<Integer>(R.mipmap.a, "第一張圖片"));
data.add(new LoopViewPagerLayout.BannerInfo<String>("url", "第二張圖片"));
data.add(new LoopViewPagerLayout.BannerInfo<Integer>(R.mipmap.b, "第三張圖片"));
data.add(new LoopViewPagerLayout.BannerInfo<Integer>(R.mipmap.c, "第四張圖片"));
data.add(new LoopViewPagerLayout.BannerInfo<Integer>(R.mipmap.d, "第五張圖片"));
mLoopViewPagerLayout.setOnLoadImageViewListener(new OnDefaultImageViewLoader());//設置圖片載入&自定義圖片監聽
mLoopViewPagerLayout.setOnBannerItemClickListener(this);//設置監聽
mLoopViewPagerLayout.setLoopData(bannerInfos);//設置數據
回調函數
/**
* Load ImageView Listener
*
* @author Edwin.Wu
* @version 2016/12/6 14:40
* @since JDK1.8
*/
public interface OnLoadImageViewListener {
/**
* create image
*
* @param context context
* @return image
*/
ImageView createImageView(Context context);
/**
* image load
*
* @param imageView ImageView
* @param parameter String 可以為一個文件路徑、uri或者url
* Uri uri類型
* File 文件
* Integer 資源Id,R.drawable.xxx或者R.mipmap.xxx
* byte[] 類型
* T 自定義類型
*/
void onLoadImageView(ImageView imageView, Object parameter);
}
/**
* Banner Click
*
* @author Edwin.Wu
* @version 2016/12/6 15:38
* @since JDK1.8
*/
public interface OnBannerItemClickListener {
/**
* banner click
*
* @param index subscript
* @param banner bean
*/
void onBannerClick(int index, ArrayList<BannerInfo> banner);
}
更新說明
- 2016/06/12
- 省略。
- 2016/06/15
- 2.0版本再次進行封裝,大更新!
- 增加LoopViewPager佈局,把LoopViewPager和LinearLayout一起結合起來了,方便直接地通過view_loop_viewpager修改一些參數,低耦合高類聚的原則;
- 修複bug 滑到第二圖再次按住滑動,鬆開手之後會連續滑動2張圖。
- 2016/07/01
- 2.1版本更新!
- 因初始化多次,清空圖片和小紅點。感謝solochen提出的問題。
- 2016/11/08 00:25
- 重構項目,1.0正式版發佈,支持Gradle載入圖片;
- 使用更方便。
- 2016/11/08 11:12
- 更改名字 LoopViewPagerLayout,1.0.5正式被髮布。
- 2016/11/28 19:20
- 修複LoopViewPagerLayout的屬性android:layout_height高度自適應,小紅點顯示錯誤bug,1.0.6正式被髮布。
- 2016/12/01 00:08
- 父佈局,子佈局裡面設置padding或者margin,寬高設置match_parent或者wrap_content小紅點錯位;
- 解決預設輪播圖片數量只能為4個的問題;
- 優化代碼。
- 2016/12/01 13:18
- 設計了一個回調方法,讓用戶自己定義圖片載入OnLoadImageViewListener。url參數支持泛型,回調回來的是Object根據實際情況強轉;
- 圖片載入框架推薦:Glide,Picasso,Fresco;
- 2.0.0正式被髮布。
- 2016/12/01 18:18
- 支持小紅點指示器三種位置擺放(左,中,右)。
- 2016/12/05 18:20
- 輪播圖觸摸不靈敏,onTouch事件有時候執行不了。感謝VincentZhangZhengliang提出的問題
- 2016/12/07 17:38
- 2.0.5正式被髮布;
- API有點小改動。
- initializeView刪除
- setOnLoadImageViewListener增加一個回調自定義圖片的方法
技術交流大本營
歡迎加入Android技術交流大群,群號碼:554610222
Android技術交流,進群後請改名片.
例如:北京-李四.
群內交流以技術為主,亂髮黃圖亂髮廣告亂開車者一律踢.
MIT License
Copyright (c) 2016 Edwin
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.