(需求分析).实现用户保存微信,支付宝等应用的收款二维码,实现快速收款功能
(技术预研)实现此功能需要图片裁切,图片保存,文件读取等技术,难点是如何实现用户将所选的图片裁切出需要使用的二维码
此功能之前自己实现过,不想干重复的事情,于是在GIT上下载了lib-cropview来偷懒,下面是使用这个库的方法
1.项目地址点击打开链接
2.需要添加Model的方法使用(1.添加Model,2.gradle里关联model
compile project(path: ':lib-cropview'))
3.
<activity android:name="com.jeanboy.cropview.cropper.CropActivity" android:theme="@style/AppTheme.NoActionBar"/>
4.在调用的Activity实现CropHandle方法
@Override public Activity getActivity() { return this; } @Override public CropperParams getParams() { //配置裁切框比例 return new CropperParams(1, 1); //不约束裁切比例 // return new CropperParams(0, 0); } @Override public void onCropped(Uri uri) { Log.d("=====onCropped======", "======裁切成功=======" + uri); } @Override public void onCropCancel() { Log.d("=====onCropCancel====", "======裁切取消====="); } @Override public void onCropFailed(String msg) { Log.d("=====onCropFailed===", "=======裁切失败======" + msg); }
5.初始化Crop Manage
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CropperManager.getInstance().build(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
CropperManager.getInstance().handlerResult(requestCode, resultCode, data);
}
- 调用操作
CropperManager.getInstance().pickFromCamera();//拍照裁切
CropperManager.getInstance().pickFromGallery();//图库选择裁切
注意事项
CropActivity不需要ActionBar
<style name="AppTheme.NoActionBar" parent="AppTheme">
<!-- 关闭ActionBar -->
<item name="windowActionBar">false</item>
<!-- 隐藏title -->
<item name="windowNoTitle">true</item>
</style>