//设置剪裁模式,留白或充满 CropConfig.STYLE_GAP 或 CropConfig.STYLE_FILL
cropConfig.setCropStyle(CropConfig.STYLE_GAP);
//设置留白模式下生成的图片背景色,支持透明背景
cropConfig.setCropGapBackgroundColor(Color.TRANSPARENT );
//调用拍照
ImagePicker.takePhotoAndCrop(this, new WXImgPickerPresenter(), cropConfig,
new OnImagePickCompleteListener() {
@Override
public void onImagePickComplete(ArrayList items) {
//剪裁回调,主线程
}
});
直接剪裁
支持直接跳转剪裁页面,示例如下:
CropConfig cropConfig = new CropConfig();
//设置剪裁比例
cropConfig.setCropRatio(1, 1);
//设置剪裁框间距,单位 px
cropConfig.setCropRectMargin(100);
cropConfig.setCropSaveFilePath(“剪裁生成的图片路径”);
//是否圆形剪裁,圆形剪裁时,setCropRatio 无效
cropConfig.setCircle(false);
//设置剪裁模式,留白或充满 CropConfig.STYLE_GAP 或 CropConfig.STYLE_FILL
cropConfig.setCropStyle(CropConfig.STYLE_GAP);
//设置留白模式下生成的图片背景色,支持透明背景
cropConfig.setCropGapBackgroundColor(Color.TRANSPARENT );
//调用剪裁
String needCropImageUrl=“需要剪裁的图片路径”;
ImagePicker.crop(this, new WXImgPickerPresenter(), cropConfig, needCropImageUrl,
new OnImagePickCompleteListener() {
@Override
public void onImagePickComplete(ArrayList items) {
//剪裁回调,主线程
}
});
提供媒体数据——支持回调相册数据、所有媒体数据、指定相册内媒体数据
获取媒体相册数据
//指定要回调的相册类型,可以指定 13 种图片视频文件格式混合
Set mimeTypes = MimeType.ofAll();
ImagePicker.provideMediaSets(this, mimeTypes, new MediaSetsDataSource.MediaSetProvider() {
@Override
public void providerMediaSets(ArrayList imageSets) {
//相册列表回调,主线程
}
});
获取全部媒体文件
//指定要回调的相册类型,可以指定 13 种图片视频文件格式混合
Set mimeTypes = MimeType.ofAll();
ImagePicker.provideAllMediaItems(this, mimeTypes, new MediaItemsDataSource.MediaItemProvider() {
@Override
public void providerMediaItems(ArrayList imageItems, ImageSet allVideoSet) {
//全部媒体数据回调,主线程
//只有当 mimeTypes 既包含图片或者视频格式文件时,allVideoSet 才有值
}
});
获取指定相册内全部媒体文件
//指定要回调的相册类型,可以指定 13 种图片视频文件格式混合
Set mimeTypes = MimeType.ofAll();
//指定相册,id 不能为空
ImageSet imageSet = new ImageSet();
ImagePicker.provideMediaItemsFromSet(this, imageSet, mimeTypes, new MediaItemsDataSource.MediaItemProvider() {
@Override
public void providerMediaItems(ArrayList imageItems, ImageSet allVideoSet) {
//全部媒体数据回调,主线程
//只有当 mimeTypes 既包含图片或者视频格式文件时,allVideoSet 才有值
}
});
预加载获取指定相册内全部媒体文件
//指定要回调的相册类型,可以指定 13 种图片视频文件格式混合
Set mimeTypes = MimeType.ofAll();
//指定相册,id 不能为空
ImageSet imageSet = new ImageSet();
//预加载个数
int preloadSize = 40;
ImagePicker.provideMediaItemsFromSetWithPreload(this, imageSet, mimeTypes, preloadSize,
new MediaItemsDataSource.MediaItemPreloadProvider() {
@Override
public void providerMediaItems(ArrayList imageItems) {
//预加载回调,预先加载指定数目的媒体文件回调
}
},
new MediaItemsDataSource.MediaItemProvider() {
@Override
public void providerMediaItems(ArrayList imageItems, ImageSet allVideoSet) {
//所有媒体文件回调
}
});
presenter 指定、自定义 Item 样式、自定义皮肤 UI、自定义提示常量、设置选择器调用失败回调、自定义回调类型
详细使用方法请查看详细 API 文档
版本记录
2.4.6 版本 [2019.11.02]
-
【BUG 修复】修复了红米拍照闪退问题
-
【BUG 修复】取消了选择器没有文件时直接退出选择器的策略。改为提示语句“暂未发现媒体文件”.
-
【适配】已适配 AndroidQ,解决 targetSdkVersion 设置 29 时数据库报错的 bug
-
【新增】新增直接拍摄视频
-
【新增】presenter 新增 overMaxCountTip、interceptPickerCancel、interceptVideoClick、getPickConstants 四个方法
-
【新增】新增 PickConstants 用于修改选择器所有文案,在 presenter 中指定
-
【新增】支持直接回调媒体数据,其中包含回调相册列表、全部媒体文件、指定相册里媒体文件,支持指定数量预加载。
-
【新增】新增退出选择器时拦截回调,新增点击视频 item 的拦截回调,在 presenter 中指定
-
【新增】新增视频最小选择时长
-
【优化】重构了预览页面,将选择器预览和通用预览分离,降低耦合度
-
【优化】统一整理了资源文件命名,以及删除不必要的资源
-
【调整】clearAllCache 方法已废弃
-
【调整】原有的选择器拍照会直接回调出照片,现在改为生成在选择器的第一个
-
【调整】当选择器只加载视频时,拍照 item 支持拍摄视频,其他情况均为拍照
-
【优化】选择器调用屏蔽多次点击,调用多次
-
【优化】所有不可选择的 item(置灰)选中均会有具体的提示
下个版本排期
时间:2019 年 11 月中旬
-
适配 AndroidQ(2.4.6 已支持)
-
微信选择器加入原图选项
-
支持对外暴露数据源,以便于实现类似 QQ 发消息时的选择图片(2.4.6 已支持)
-
实现最新版微信样式
-
剪裁支持输出指定大小图片
-
等你来提
计划 TODO:
-
视频预览框架切换(吐槽:官方 videoView 太难用了/(ㄒoㄒ)/)
-
图片剪裁支持旋转
-
支持 JPEG、PNG、GIF、BMP、WEBP、MPEG、MP4、QUICKTIME、THREEGPP、THREEGPP2、MKV、WEBM、TS、AVI 等图片视频文件格式混合加载或指定加载(2.4.4 已支持)
永不 TODO:
-
不会支持图片压缩,请使用者自行使用 luBan
-
不会支持图片和视频高级编辑(滤镜、贴纸等)
感谢
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)
最后
最后这里放上我这段时间复习的资料,这个资料也是偶然一位朋友分享给我的,里面包含了腾讯、字节跳动、阿里、百度2020-2021面试真题解析,并且把每个技术点整理成了视频和PDF(知识脉络 + 诸多细节)。
还有 高级架构技术进阶脑图、高级进阶架构资料 帮助大家学习提升进阶,这里我也免费分享给大家也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。
一起互勉~
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算
:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》]( )收录**
一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!
AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算