public void start() {
    if (mAdapter == null) {
      throw new RuntimeException("you must call setAdapter() before start");
    }

    if (!isStarted && mAdapter.getCount() > 1) {
      isStarted = true;
      postDelayed(mRunnable, mGap);
    }
  }
 /** 设置banner的数据 */
 public void setAdapter(BaseBannerAdapter adapter) {
   if (adapter == null) {
     throw new RuntimeException("adapter must not be null");
   }
   if (mAdapter != null) {
     throw new RuntimeException("you have already set an Adapter");
   }
   this.mAdapter = adapter;
   mAdapter.setOnDataChangedListener(this);
   setupAdapter();
 }
  private void setupAdapter() {
    removeAllViews();

    if (mAdapter.getCount() == 1) {
      mFirstView = mAdapter.getView(this);
      mAdapter.setItem(mFirstView, mAdapter.getItem(0));
      addView(mFirstView);
    } else {
      mFirstView = mAdapter.getView(this);
      mSecondView = mAdapter.getView(this);
      mAdapter.setItem(mFirstView, mAdapter.getItem(0));
      mAdapter.setItem(mSecondView, mAdapter.getItem(1));
      addView(mFirstView);
      addView(mSecondView);

      mPosition = 1;
      isStarted = false;
    }
    setBackgroundDrawable(mFirstView.getBackground());
  }