Android仿qq从相册选择照片

这篇博客介绍了在Android中实现多选照片功能,包括imageSelector库的使用、图片数据的获取方法以及LoaderCallbacks的运用。作者强调理解ContentProvider查询逻辑的重要性,并分享了从Android设备的media数据库中查找所需字段的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博客恢复更新后,还是打算每周至少写一篇技术博客吧,再多的话也没什么时间(╮(╯_╰)╭)。
先看下效果图吧,弄了半天没整出小鱼2M的gif图,所以暂时先用几张截图代替吧,大体流程也就这样。现在几乎每个应用都要有拍照和选择照片的功能了,单选的话直接跳转到系统相册就可以了,但是多选的的话就得自己写了,倒不是写这个功能有多么麻烦,只是现在的产品啊,明明都是抄袭别的应用了,却还要想保持个性,所以我就把这块功能直接抽成library,方便以后应用的集成和修改。

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

imageSelector的用法

1.选图片模式

startActivityForResult(new ImageSelect.Builder(this)
                    .setLimit(9)
                    .setMode(ImageSelect.MODE_SELECT)
                    .Build(),ALBUM);

然后在onActivityResult中获取数据

if(requestCode==ALBUM&&resultCode==RESULT_OK){
            pathList=ImageSelect.getImagePath(data);
 }

2.预览模式
需要传一个String的List

startActivity(new ImageSelect.Builder(this)
                    
Android 仿QQ图片选择器,包含图片裁剪,浏览大图功能。   博客地址:http://blog.youkuaiyun.com/junzia/article/details/53091606简单使用示例如需使用图片选择器功能,将chooser加入为依赖工程,然后使用指定功能:选择单张图片如果需要选择单张图片,调用:Intent intent=new Intent(IcFinal.ACTION_ALBUM); intent.putExtra(IcFinal.INTENT_MAX_IMG,1);   startActivityForResult(intent,1);裁剪如果需要选择单张图片并且裁剪,调用:Intent intent=new Intent(IcFinal.ACTION_ALBUM); intent.putExtra(IcFinal.INTENT_IS_CROP,true); startActivityForResult(intent,1);默认为圆形图片,大小为500*500。如果需要自行设定,给intent增加以下参数(目前功能未实现):intent.putExtra(IcFinal.INTENT_CROP_SHAPE,CropPath.SHAPE_RECT);   //矩形intent.putExtra(IcFinal.INTENT_CROP_WIDTH,512); //裁剪宽度intent.putExtra(IcFinal.INTENT_CROP_HEIGHT,280); //裁剪高度选择多张图片Intent intent=new Intent(IcFinal.ACTION_ALBUM); intent.putExtra(IcFinal.INTENT_MAX_IMG,9); startActivityForResult(intent,1);更多设置也许图片选择器默认的UI不符合你的要求,你可以选择利用ChooserSetting中的静态参数来更改图片选择器的效果:/**标题的背景颜色*/public static int TITLE_COLOR=0xFF584512;/**图片选择页,每行显示数*/public static int NUM_COLUMNS=3;/**图片加载失败的图片*/public static int errorResId=0;/**图片加载的占位图片*/public static int placeResId=R.mipmap.image_chooser_placeholder;/**图片加载的动画*/public static int loadAnimateResId=0;/**选中图片的滤镜颜色*/public static int chooseFilter=0x55000000;/**未被选中的图片的滤镜颜色*/public static int unChooseFilter=0;/**最新的图片集合显示名字*/public static String newestAlbumName="最新图片";/**最新图片集合的最大数量*/public static int newestAlbumSize=100;public static int albumPopupHeight=600;public static String tantoToast="";/**照片选择指示器*/public static IChooseDrawable chooseDrawable=new CircleChooseDrawable(true,0xFF25c2e6);如果这些也无法满足你的UI要求,你也可以参照EntryActivity重新写相册的入口Activity,参照CropActivity重写裁剪的入口Activity。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值