https://github.com/wangluu/PicSelect
因为觉得网上其他的仿微信图片选择都不够好,特别是手势处理,大图查看时,稍微放大图片,再左滑右滑效果很不理想,所以我自己做了一个。
这里写图片描述
(Gif太麻烦了,截几张图吧)

features
1.传参定义主题颜色,最多图片数量等。
2.仿微信,增加拍摄直接选中,分文件夹,预览,单击全屏,双击放大,多指操作平滑
3.我认为最重要的一个地方(GIF中的效果),受限于android事件传递机制,必须要自己对事件进行控制,我是自定义Wiewpager(没写错,稍微修改viewpager源码),加上自定义ImageView实现的,Wiewpager拦截分配所有触摸事件(实现起来才知道有多麻烦,没有像其他仿微信的使用诸如PhotoView这类单纯控件,因为这样无法达到微信的手势效果)。

使用起来像是下面这样:

//startActivityForResult启动界面,在onActivityResult中获取选中结果。用我的IntentBuilder或者自己定义intent
startActivityForResult(new SelectPictureActivity.IntentBuilder().maxCount(9).themeColor(yourColor).build(context), 1);

获取选中结果

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode ==Activity.RESULT_OK&& requestCode == 1 ){
            //获取选中图片的路径
            List<String> imgPaths = data.getStringArrayListExtra(SelectPictureActivity.IMAGES);
            mAdapter.setData(imgPaths);
            mAdapter.notifyDataSetChanged();
        }
    }

还可以预览图片:

//data就是图片路径地址list,可以是网络图片.initPosition初始位置
Intent intent = new ViewImageActivity.IntentBuilder().images(data).initPosition(initPosition).themeColor(c).showTopBar(true).build(MainActivity.this);
startActivity(intent);

源码和示例已经放在github,
https://github.com/wangluu/PicSelect

当然还需要再完善的,有什么问题或者需求,可以提出来,我会抽时间完善,如果你有用到或者对你有帮助记得给个star,3Q。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐