BtCarousel
A Carousel Easy To Use
專案地址BtCarousel 個人部落格 BT SPACE 我的 github
演示
圖片幀數較低諒解~
背景:
筆者公司的業務程式碼屬於比較定製化的型別,即針對於某一環境所編寫的程式碼,無法進行程式碼重用,並且如果需求有更改,程式碼改動量也極其巨大
一直都有想法去編寫一些耦合性比較低的元件供日常使用,對以後的工作和學習來說都是事半功倍
使用:
Step1 : 將以下佈局加入layout
中,寬高可以自行設定或者使用 CarouselView..scale(float scale)
方法進行比例設定.
<com.bt.carousel.carousel.Carousel.view.CarouselView
android:id="@+id/carousel_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
</com.bt.carousel.carousel.Carousel.view.CarouselView>
複製程式碼
Step2 : 自定義Apdapter
繼承自CarouselAdapter
public class CarouselAdapter extends CarouselBaseAdapter {
public CarouselAdapter(Context context) {
super(context);
}
/**
* @param viewHolder
* @param position
* 設定根檢視以及元素,點選事件等
*/
@Override
protected void convert(PagerViewHolder viewHolder, final int position) {
viewHolder.setConvertView(R.layout.item).setImageResource(R.id.home_banner_item_img,
getData().get(position).toString(),R.drawable.default_bg,R.drawable.default_bg);
}
}
複製程式碼
convert
方法內繫結檢視及設定內容使用鏈式呼叫方法.
setConvertView(@LayoutRes int layoutId)
(必需) 設定每個item
的根檢視setText(@IdRes int viewId, CharSequence value)
設定對應viewId
的填充文字setImageResource(@IdRes int viewId, @DrawableRes int imageResId)
設定對應viewId
的背景圖/drawable(本地)setImageResource(@IdRes int viewId,CharSequence imageUrl, @DrawableRes int defaultImageResId,@DrawableRes int errorImageResId)
設定對應viewId
載入網路圖片,預設佔點陣圖及錯誤佔點陣圖.如不需要可將引數置0
Step3 : 例項化Apdater
,ViewPager
,Indicator
(可選)並與CarouselView
的例項進行繫結.
//獲取例項
mCarouselView = (CarouselView) findViewById(R.id.carousel_view);
//例項化adapter
CarouselAdapter carouselAdapter = new CarouselAdapter(this);
//例項化ViewPager
BtViewPager viewPager = new BtViewPager(this);
//構建viewPager
viewPager.build();
//例項化Indicator ,此處使用圓形canvas繪製
CanvasIndicator canvasIndicator = new CanvasIndicator(this,CanvasIndicator.CIRCLE_STYLE);
//構建Indicator
canvasIndicator.build();
//輪播構建
mCarouselView.viewPager(viewPager).adapter(carouselAdapter).indicator(canvasIndicator).build();
複製程式碼
Finish : 輪播正常顯示啦.或許現在的介面很醜,你可以通過以下方法去定製.
擴充套件
每個元件內部均可自行定製.高度可擴充套件並且不會出現相容問題.
更新日誌
2018-6-29
- 程式碼重構,元件各自獨立,降低耦合.
- 元件優化,可自行選擇需要的元件進行載入.
- 程式碼優化,剔除冗餘程式碼,程式碼高效利用.
- 修改作者名稱.(原工號)
2018-6-18
- 修復設定樣式後無法立即生效的BUG
- 修復canvas繪製有延遲的BUG
- 目錄改動,按型別分類
- 增加樣式設定方法
- 增加演示介面