package com.eighteengray.procamera.widget.dialogfragment; import android.graphics.Bitmap; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.DialogFragment; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.eighteengray.commonutillibrary.ImageUtils; import com.eighteengray.procamera.R; import com.eighteengray.procamera.bean.ImageFolder; import com.eighteengray.procamera.widget.baserecycler.BaseRecyclerAdapter; import com.eighteengray.procamera.widget.baserecycler.BaseRecyclerViewHolder; import com.eighteengray.procameralibrary.common.Constants; import com.eighteengray.procameralibrary.dataevent.ImageFolderEvent; import org.greenrobot.eventbus.EventBus; import java.util.ArrayList; import butterknife.BindView; import butterknife.ButterKnife; public class ImageFoldersDialogFragment extends DialogFragment { View view; @BindView(R.id.rcv_imagefolders_dialogfragment) RecyclerView rcv_imagefolders_dialogfragment; BaseRecyclerAdapter<ImageFolder> imageFoldersAdapter; ArrayList<ImageFolder> imageFolderArrayList; int currentImageFolderNum; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bundle bundle = getArguments(); imageFolderArrayList = (ArrayList<ImageFolder>) bundle.getSerializable(Constants.IMAGEFOLDERS); currentImageFolderNum = bundle.getInt(Constants.CURRENTFOLDERNUM); } @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //全屏显示 Window window = getDialog().getWindow(); view = inflater.inflate(R.layout.dialogfragment_imagefolders, null); ButterKnife.bind(this, view); // 设置宽度为屏宽, 靠近屏幕底部。 WindowManager.LayoutParams lp = window.getAttributes(); lp.gravity = Gravity.BOTTOM; // 紧贴底部 lp.width = WindowManager.LayoutParams.MATCH_PARENT; // 宽度持平 window.setAttributes(lp); getDialog().setCancelable(true); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity()); rcv_imagefolders_dialogfragment.setLayoutManager(linearLayoutManager); imageFoldersAdapter = new BaseRecyclerAdapter<ImageFolder>(R.layout.list_dir_item) { @Override public void setData2ViewR(BaseRecyclerViewHolder baseRecyclerViewHolder, final ImageFolder item, final int position) { RelativeLayout rl_item_dirlsit = baseRecyclerViewHolder.getViewById(R.id.rl_item_dirlsit); ImageView iv_image_item_dirlist = baseRecyclerViewHolder.getViewById(R.id.iv_image_item_dirlist); TextView tv_name_item_dirlist = baseRecyclerViewHolder.getViewById(R.id.tv_name_item_dirlist); TextView tv_count_item_dirlist = baseRecyclerViewHolder.getViewById(R.id.tv_count_item_dirlist); ImageView iv_choosen_item_dirlist = baseRecyclerViewHolder.getViewById(R.id.iv_choosen_item_dirlist); Bitmap bitmap = ImageUtils.getBitmapFromPath(item.getFirstImagePath()); iv_image_item_dirlist.setImageBitmap(bitmap); tv_name_item_dirlist.setText(item.getName()); tv_count_item_dirlist.setText(item.getImagePathList().size() + "张"); iv_choosen_item_dirlist.setVisibility(currentImageFolderNum == position ? View.VISIBLE : View.GONE); rl_item_dirlsit.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { currentImageFolderNum = position; //返回AlbumActivity ImageFolderEvent imageFolderEvent = new ImageFolderEvent(); imageFolderEvent.setCurrentImageFolderNum(currentImageFolderNum); EventBus.getDefault().post(imageFolderEvent); dismiss(); } }); } }; rcv_imagefolders_dialogfragment.setAdapter(imageFoldersAdapter); imageFoldersAdapter.setData(imageFolderArrayList); return view; } }