前段时间我分享过一个多图选择器实现了批示图片选择的问题、可以不会把系统的图库
那么今天再和大家分享一个非常棒的源代码、实现仿微信的图片选择功能(多图选择哦)
话不多说、有图有真像、先上图片
本例子主要实现了以下功能点
1、默认显示图片最多的文件夹图片、以及底部显示图片总数量
2、点击底部、弹出popupWindow、popupWindow包含所有含有图片的文件夹、以及显示每个文件夹中图片数量
3、选择任何文件夹、进入该文件夹图片显示、可以点击选择图片、当然了、点击已选择的图片则会取消选择
代码分析
初始化展示文件夹的popupWindw
private void initListDirPopupWindw(){
mListImageDirPopupWindow = new ListImageDirPopupWindow(
LayoutParams.MATCH_PARENT, (int) (mScreenHeight * 0.7),
mImageFloders, LayoutInflater.from(getApplicationContext())
.inflate(R.layout.list_dir, null));
mListImageDirPopupWindow.setOnDismissListener(new OnDismissListener()
{
@Override
public void onDismiss()
{
// 设置背景颜色变暗
WindowManager.LayoutParams lp = getWindow()
.getAttributes();
lp.alpha = 1.0f;
getWindow().setAttributes(lp);
}
});
// 设置选择文件夹的回调
mListImageDirPopupWindow.setOnImageDirSelected(this);}
为底部的布局设置点击事件、弹出popupWindow
private void initEvent(){mBottomLy.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v)
{
mListImageDirPopupWindow.setAnimationStyle(R.style.anim_popup_dir);
mListImageDirPopupWindow.showAsDropDown(mBottomLy, 0, 0);
// 设置背景颜色变暗
WindowManager.LayoutParams lp = getWindow()
.getAttributes();
lp.alpha = .3f;
getWindow().setAttributes(lp);
}});}
代码就贴到这里哈、更多代码大家可以下载源代码进行查看哈
有任何疑问或要获取更多代码、可以在下面进行评论哈