MZBannerView

仿魅族BannerView,图片轮播控件,支持多种模式切换:普通ViewPager使用,普通Banner使用,仿魅族Banner使用。

Stars
2.3K

MZBannerView

APP BannerAPPBannerBannerView BannerView ViewPager API

meizuappbanner bannerView APPBanner

**MZBannerView **

1 . BannerView

2 . Banner

3 . ViewPager

4 . ViewPager(Banner)

5 . Banner

Demo APK

gifAPK

ViewPager BannerView

v1.1.1 : Banner

v1.1.0 : fix banner ANR bug(onCreate())

v1.1.2 : fix setPagescrushbug

v2.0.0 :

1,add: BannerPage

2,fix bug: OnPageChangeListener pisition bug.

v2.0.1

1 , 2Indicatorapi,xml

 mMZBanner.setIndicatorAlign(MZBannerView.IndicatorAlign.LEFT);
 mMZBanner.setIndicatorPadding(10,0,0,150);

xml

 app:indicatorAlign="center"
 app:indicatorPaddingLeft="10dp"
 app:indicatorPaddingBottom="50dp"
 app:indicatorPaddingRight="10dp"
 app:indicatorPaddingTop="50dp"

v2.0.2

1,bug 2,

setPages()

Dependency

Add it in your root build.gradle at the end of repositories:

allprojects {
     repositories {
          ...
          maven { url 'https://jitpack.io' }
     }
}

Step 2. Add the dependency

dependencies {
         compile 'com.github.pinguo-zhouwei:MZBannerView:v2.0.2'
}

open_mz_mode true Bannerfalse Banner
canLoop true false ViewPager
indicatorPaddingLeft dp
indicatorPaddingRight dp
indicatorAlign left center right
middle_page_cover PageBanner true false

1 . xml

 <com.zhouwei.mzbanner.MZBannerView
       android:id="@+id/banner"
       android:layout_width="match_parent"
       android:layout_height="200dp"
       android:layout_marginTop="10dp"
       app:open_mz_mode="true"
       app:canLoop="true"
       app:indicatorAlign="center"
       app:indicatorPaddingLeft="10dp"
       />

2 . activity

        mMZBanner = (MZBannerView) view.findViewById(R.id.banner);
     
       // 
        mMZBanner.setPages(list, new MZHolderCreator<BannerViewHolder>() {
            @Override
            public BannerViewHolder createViewHolder() {
                return new BannerViewHolder();
            }
        });

 public static class BannerViewHolder implements MZViewHolder<Integer> {
        private ImageView mImageView;
        @Override
        public View createView(Context context) {
            // 
            View view = LayoutInflater.from(context).inflate(R.layout.banner_item,null);
            mImageView = (ImageView) view.findViewById(R.id.banner_image);
            return view;
        }

        @Override
        public void onBind(Context context, int position, Integer data) {
            // 
            mImageView.setImageResource(data);
        }
    }

3 .BanneronResume start()onPause pause() ViewPager

 @Override
    public void onPause() {
        super.onPause();
        mMZBanner.pause();//
    }

    @Override
    public void onResume() {
        super.onResume();
        mMZBanner.start();//
    }

open_mz_mode ``middle_page_cover``canLoop 3MZBannerView BannerViewPager,Banner

1 . Banner Page

 app:open_mz_mode="true"
 app:canLoop="true"
 app:middle_page_cover="true"

2 banner

app:open_mz_mode="false"
app:canLoop="true"

BannerView

3 Banner Page

 app:open_mz_mode="true"
 app:canLoop="true"
 app:middle_page_cover="false"

4 BannerPage

 <com.zhouwei.mzbanner.MZBannerView
       android:id="@+id/banner_normal"
       android:layout_width="match_parent"
       android:layout_height="150dp"
       android:layout_marginTop="10dp"
       app:open_mz_mode="true"
       app:middle_page_cover="false"
       app:canLoop="true"
       app:indicatorAlign="center"
       />

Page item Margin:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
    <ImageView
        android:id="@+id/banner_image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        />

5 Banner ViewPager

 app:open_mz_mode="true"
 app:canLoop="false"

6 ViewPager

 app:canLoop="false"
 app:open_mz_mode="false"

Banner Banner RemoteTestFragment.java

API

    /******************************************************************************************************/
    /**                             API                                                               **/
    /******************************************************************************************************/
    //
     start()
    //
     pause()

    //BannerView 
     setDelayedTime(int delayedTime)
    // 
    addPageChangeLisnter(ViewPager.OnPageChangeListener onPageChangeListener)

    //Page
     setBannerPageClickListener(BannerPageClickListener bannerPageClickListener)
    //Indicator
    setIndicatorVisible(boolean visible)
    // ViewPager
    ViewPager getViewPager()
    //  Indicator
    setIndicatorRes(int unSelectRes,int selectRes)
    //
    setPages(List<T> datas,MZHolderCreator mzHolderCreator)
    //
    setIndicatorAlign(IndicatorAlign indicatorAlign)
    //ViewPagerBanner
    setDuration(int duration)

ViewPagerViewPagergetViewPager ViewPager

1, BannerView

Thanks

Android-ConvenientBanner,Android-ConvenientBanner Banner

ScaleViewPager Page

:http://www.jianshu.com/u/35167a70aa39

https://juejin.im/user/56949a9960b2e058a42be0ba

Android

Android

License

   Copyright (C) 2017 zhouwei

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
Badges
Extracted from project README
Related Projects