PicSelectAndShow图片选择框架
来源:互联网 发布:ug编程是什么 编辑:程序博客网 时间:2024/06/14 07:43
因为现在开发的项目对图片的选择和拍照需求比较多,网上的框架也只是简单的针对图片进行选择,对于一些特殊机型比如三星,小米等拍照后图片会有旋转的效果处理不是很好,甚至有些框架对安卓7.0都没有适配,让我瞬间萌生了一个封装一个解决这些问题的框架,来方便以后的开发。 PicSelectAndShow是我封装的第一个框架,一个简单的图片选择,支持Android7.0系统,适配三星,小米等拍照后图片旋转问题。将拍照的代码量缩短为一行代码,方便大家对图片的选择操作(第一次封装可能会有一些不完善的地方欢迎大家指出来,一起完善)。
首先贴出使用方法:在你项目的build.gradle中加入
allprojects{
repositories{
maven{url 'https://jitpack.io'}
}
}
然后就是加依赖了:compile 'com.github.BoBoAndroid:PicSelectAndShow:1.0'
最新版的依赖:compile 'com.github.BoBoAndroid:PicSelectAndShow:1.01'
项目GitHub的传送门:https://github.com/BoBoAndroid/PicSelectAndShow
下面是每个方法的使用,包括单选,多选,拍照
public void onClick(View view){ switch (view.getId()){ case R.id.bt_single: /** * 调用选单张图片的方法 * .single():表明是单选 * .showCamera(true):选择界面含有拍照功能,false 选择界面不包含拍照只是选择图片 * .start():跳转 * */ MultiImageSelector.create().single().showCamera(true).start(MainActivity.this,REQUEST_PHOTO_IMAGE); break; case R.id.bt_single_no: /** *选单张图片不包含拍照功能的方法调用 * */ MultiImageSelector.create().single().showCamera(false).start(MainActivity.this,REQUEST_PHOTO_IMAGE); break; case R.id.bt_more: /** * 调用选多张图片的方法 * .multi():表明是多选 * .origin(lstPhotoPath):如果已经选过图片了,把选过的数据源带进去 * .count():一次最多选择几张图片 * */ MultiImageSelector.create().multi().showCamera(true).origin(lstPhotoPath).count(6).start(MainActivity.this,REQUEST_PHOTO_IMAGE); break; case R.id.bt_more_no: /** * 调用选多张图片不带拍照功能的方法 * */ MultiImageSelector.create().multi().showCamera(false).origin(lstPhotoPath).count(6).start(MainActivity.this,REQUEST_PHOTO_IMAGE); break; case R.id.bt_take_photo: /** * 调用拍照功能,直接调起拍照,不指定存储路径 * */ MultiImageSelector.create().takePhoto(true).start(MainActivity.this,REQUEST_PHOTO_IMAGE); break; case R.id.bt_takephoto_path: /** * 调用拍照功能,直接调起拍照,指定图片存储路径 * */ File appDir =new File( Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "TestPic"); if (!appDir.exists()) { appDir.mkdir(); } String fileName = System.currentTimeMillis() + ".jpg"; File file1 = new File(appDir, fileName); MultiImageSelector.create().takePhoto(true).registerFile(file1).start(MainActivity.this,REQUEST_PHOTO_IMAGE); break; }}
调用预览的方法:
/** * 点击预览图片 * lstPhotoPath: 要预览的数据源 * lstPhotoPath.get(i):当前点击的图片地址 * */ MultiImageSelector.create().startImageShow(MainActivity.this,lstPhotoPath,lstPhotoPath.get(i));
具体的使用demo可以从GitHub下载到本地运行,也可以以module形式导入进去哦,使用module的形式我以前的博客也有涉及,没看过的可以移步到:安卓弹出框控件jjdxm-dialogui之日期选择小结查看
第一次写这种框架,有什么需要改进的,希望大家可以提出来,共同改进。另外GitHub上面,希望大家多多star哦。
项目用到的大神知识点:Android 7.0 行为变更 通过FileProvider在应用间共享文件吧
最后再次奉上传送门:https://github.com/BoBoAndroid/PicSelectAndShow
- PicSelectAndShow图片选择框架
- 如何选择第三方图片框架
- Android多张图片选择框架
- Android网络图片加载框架的选择
- Android开源图片加载框架选择
- Android网络图片加载框架的选择
- Android项目框架之图片加载框架的选择
- 一分钟实现图片选择功能——图片选择框架
- Android图片加载框架Glide、Picaso、Fresco的选择
- ionic2框架 图片选择与上传(支持ios,android)
- 框架选择
- 框架选择
- 选择图片
- 选择图片
- 选择图片
- 选择图片
- Android LruCache和DiskLruCache相结合打造图片加载框架(仿微信图片选择,照片墙)
- 一款神级选择图片工具,支持所有主流图片缓存框架
- 从一个小例子再次理解闭包
- psql的环境设置(文件.mylocalenv)
- xcode真机(手机或ipad)测试所支持的设备系统Version
- Java IO(一):IO和File
- 自定义二级列表
- PicSelectAndShow图片选择框架
- 网络端口号汇总
- CSS:移动端实现垂直居中的方法
- Java 使用ftp的方式上传文件到linux,并实现删除,下载
- hadoop全分布式集群:配置主从节点之间的免密登录
- IntelliJ IDEA 下的svn配置及使用的非常详细的图文总结
- 进制转换
- pyvcf 模块
- Linux目录结构详细介绍