@Override
  public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    bitmapUtils = BitmapHelper.getInstance();

    // 选择图片数量
    mDesireImageCount = getArguments().getInt(EXTRA_SELECT_COUNT);

    // 图片选择模式
    final int mode = getArguments().getInt(EXTRA_SELECT_MODE);

    // 默认选择
    if (mode == MODE_MULTI) {
      ArrayList<String> tmp = getArguments().getStringArrayList(EXTRA_DEFAULT_SELECTED_LIST);
      if (tmp != null && tmp.size() > 0) {
        resultList = tmp;
      }
    }

    // 是否显示照相机
    mIsShowCamera = getArguments().getBoolean(EXTRA_SHOW_CAMERA, true);
    mImageAdapter = new ImageGridAdapter(getActivity(), mIsShowCamera);
    // 是否显示选择指示器
    mImageAdapter.showSelectIndicator(mode == MODE_MULTI);

    mPopupAnchorView = view.findViewById(R.id.footer);

    mTimeLineText = (TextView) view.findViewById(R.id.timeline_area);
    // 初始化,先隐藏当前timeline
    mTimeLineText.setVisibility(View.GONE);

    mCategoryText = (TextView) view.findViewById(R.id.category_btn);
    // 初始化,加载所有图片
    mCategoryText.setText(R.string.folder_all);
    mCategoryText.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View view) {

            if (mFolderPopupWindow == null) {
              createPopupFolderList(mGridWidth, mGridHeight);
            }

            if (mFolderPopupWindow.isShowing()) {
              mFolderPopupWindow.dismiss();
            } else {
              mFolderPopupWindow.show();
              int index = mFolderAdapter.getSelectIndex();
              index = index == 0 ? index : index - 1;
              mFolderPopupWindow.getListView().setSelection(index);
            }
          }
        });

    mPreviewBtn = (Button) view.findViewById(R.id.preview);
    // 初始化,按钮状态初始化
    if (resultList == null || resultList.size() <= 0) {
      mPreviewBtn.setText(R.string.preview);
      mPreviewBtn.setEnabled(false);
    }
    mPreviewBtn.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View view) {
            // TODO 预览
          }
        });

    mGridView = (GridView) view.findViewById(R.id.grid);
    mGridView.setOnScrollListener(new MyScrollListener(bitmapUtils, false, true));
    mGridView.setAdapter(mImageAdapter);
    mGridView
        .getViewTreeObserver()
        .addOnGlobalLayoutListener(
            new ViewTreeObserver.OnGlobalLayoutListener() {
              @Override
              @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
              public void onGlobalLayout() {

                final int width = mGridView.getWidth();
                final int height = mGridView.getHeight();

                mGridWidth = width;
                mGridHeight = height;

                final int desireSize = getResources().getDimensionPixelOffset(R.dimen.image_size);
                final int numCount = width / desireSize;
                final int columnSpace = getResources().getDimensionPixelOffset(R.dimen.space_size);
                int columnWidth = (width - columnSpace * (numCount - 1)) / numCount;
                mImageAdapter.setItemSize(columnWidth);

                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                  mGridView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
                } else {
                  mGridView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
                }
              }
            });
    mGridView.setOnItemClickListener(
        new AdapterView.OnItemClickListener() {
          @Override
          public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            if (mImageAdapter.isShowCamera()) {
              // 如果显示照相机,则第一个Grid显示为照相机,处理特殊逻辑
              if (i == 0) {
                showCameraAction();
              } else {
                // 正常操作
                Image image = (Image) adapterView.getAdapter().getItem(i);
                selectImageFromGrid(image, mode);
              }
            } else {
              // 正常操作
              Image image = (Image) adapterView.getAdapter().getItem(i);
              selectImageFromGrid(image, mode);
            }
          }
        });

    mFolderAdapter = new FolderAdapter(getActivity());
  }