TakePhoto-轻量级Android照片处理框架
来源:互联网 发布:linux终端装中文输入法 编辑:程序博客网 时间:2024/05/01 19:01
TakePhoto
V2.0已发布,详见《TakePhoto-轻量级Android照片处理框架V2.0发布》
TakePhoto 简介
- 支持以拍照的方式获取照片
- 支持从相册选择照片
- 支持对照片进行裁切
- 支持对照片进行压缩
- 支持对裁切及压缩参数自定义
- 支持因拍照Activity被回收后的自动恢复
GitHub地址: https://github.com/crazycodeboy/TakePhoto
如何使用
使用TakePhoto有以下两种方式:
方式一:通过继承的方式
1. 继承TakePhotoActivity、TakePhotoFragmentActivity、TakePhotoFragment三者之一。
2. 通过getTakePhoto()
获取TakePhoto实例进行相关操作。
3. 重写以下方法获取结果
void takeSuccess(String imagePath); void takeFail(String msg);void takeCancel();
此方式使用简单,满足的大部分的使用需求,具体使用详见simple。如果通过继承的方式无法满足实际项目的使用,可以通过下面介绍的方式。
方式二:通过组装的方式
1. 获取TakePhoto实例TakePhoto takePhoto=new TakePhotoImpl(getActivity(),this);
2. 在 onCreate
,onActivityResult
,onSaveInstanceState
方法中调用TakePhoto对用的方法。
3. 调用TakePhoto实例进行相关操作。
4. 在TakeResultListener
相关方法中获取结果。
关于压缩照片
你可以选择是否对照片进行压缩处理。
/** * 启用照片压缩 * @param config 压缩照片配置 * @param showCompressDialog 压缩时是否显示进度对话框 * @return */ TakePhoto onEnableCompress(CompressConfig config,boolean showCompressDialog);
eg: getTakePhoto().onEnableCompress(new CompressConfig.Builder().setMaxSize(50*1024).setMaxPixel(800).create(),true).onPicSelectCrop(imageUri);
如果你启用了照片压缩,TakePhoto会使用CompressImage
对照片进行压缩处理,CompressImage目前支持对照片的尺寸以及照片的质量进行压缩。默认情况下,CompressImage开启了尺寸与质量双重压缩,
你可以通过CompressConfig.Builder对照片压缩后的尺寸以及质量进行相关设置。如果你想改变压缩的方式可以通过CompressConfig.Builder进行相关设置。
关于兼容性问题
TakePhoto是基于Android官方标准API编写的,适配了目前市场上主流的Rom。如果你在使用过程中发现了适配问题,可以提交Issues。
1. 为适配部分手机拍照时会回收Activity,TakePhoto在onSaveInstanceState
与 onCreate
做了相应的恢复处理。
2. 为适配部分手机拍照或从相册选择照片时屏幕方向会发生转变,从而导致拍照失败的问题,可以在AndroidManifest.xml中对使用了TakePhoto的Activity添加android:configChanges=”orientation|keyboardHidden|screenSize”配置。
eg:
<activity android:name=".MainActivity" android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden|screenSize" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter></activity>
在项目中使用
为方便大家使用,现已将TakePhoto发布到JCenter(如果你对如何将项目发布到JCenter感兴趣可以参考:《教你轻松将Android library 发布到JCenter)》
Gradle:
compile 'com.jph.takephoto:takephoto_library:1.0.1'
Maven:
<dependency> <groupId>com.jph.takephoto</groupId> <artifactId>takephoto_library</artifactId> <version>1.0.1</version> <type>pom</type></dependency>
最后
如果你对TakePhoto有更好的建议或想改造它,欢迎大家Fork and Pull requests。
- TakePhoto-轻量级Android照片处理框架
- TakePhoto-轻量级Android照片处理框架V2.0发布
- android从相册或拍照获取照片第三方开源库TakePhoto
- android TakePhoto
- TakePhoto获取照片的使用
- 在 Android 设备上获取照片、裁剪图片、压缩图片 @TakePhoto V3.0 发布
- Android图片加载-TakePhoto
- 《Android三方库--TakePhoto》
- 轻量级Android HTTP框架
- Android轻量级框架XSnow
- 轻量级业务逻辑处理框架
- takephoto
- ActiveAndroid--Android轻量级ORM框架
- 一款轻量级Android HTTP框架
- ActiveAndroid--Android轻量级ORM框架
- Android 轻量级缓存框架:ASimpleCache
- 轻量级Android缓存框架ASimpleCache
- 轻量级Android缓存框架ASimpleCache
- android audiotrack 播放pcm
- 十几年前跟QQ、MSN平起平坐的雅虎通要关闭了
- Linux rpm包、rpm源码包及tar源码包的安装详解
- JVM参数设置PermSize大于PermMaxSize,结果会怎么样?
- Android Studio 添加动态库
- TakePhoto-轻量级Android照片处理框架
- Android Eclipse安装Ant插件
- MYSQL向日期添加指定的时间间隔
- window.open代替window.showModalDialog(非标准的BOM方法)
- IDM退出机制研究
- Java创建线程的两个方法
- 【Oh-Hard】瘦人增肌是不是要先吃胖?怎么练怎么吃?
- [LeetCode][11]Container With Most Water解析 时间复杂度为O(n) -Java实现
- iMindMap是怎样在学术研究上做贡献的