基于RxPaparazzo实现图片裁剪,图片旋转,比例放大缩小功能

  

前言:基于RxPaparazzo的图片裁剪,图片旋转,比例放大|缩小。

  

<>强效果:

  

, 基于RxPaparazzo实现图片裁剪,图片旋转,比例放大缩小功能

  

<强>开发环境: AndroidStudio2.2.1 + gradle-2.14.1 

  

<强>涉及知识:

  

1。材料设计

  

(CardView + CoordinatorLayout + AppBarLayout + NestedScrollView + CollapsingToolbarLayout +工具+ FloatingActionButton)使用,
  

  

2. butterknife注解式开发,
  

  

3。基于RxJava + RxAndroid的RxPaparazzo使用,

  

引入依赖:

        编译“com.android.support: appcompat-v7:24 +”。//RxPaparazzo拍照,相册//编译“com.github.miguelbcr: RxPaparazzo: 0.4.2-2.x”   编译(“com.github.miguelbcr: RxPaparazzo: 0.5.2-2.x”) {   排除模块:“okhttp”   排除模块:“okio”   }   编译的io.reactivex.rxjava2: rxandroid: 2.0.1   编译“com.android.support: cardview-v7:24 +”。//编译“com.android.support: customtabs: 24 +”。   编译“com.android.support:设计:24 +”。   编译“com.jakewharton: butterknife: 7.0.1”   之前      

部分代码:

        公开课MainActivity延伸AppCompatActivity {      @Bind (R.id.iv_appbar)   ImageView iv_appbar;      @Bind (R.id.main_toolbar)   工具栏工具栏;/* @Bind (R.id.btn_float)   FloatingActionButton btn_float; */@Override   保护无效onCreate(包savedInstanceState) {   super.onCreate (savedInstanceState);   setContentView (R.layout.activity_main);   ButterKnife.bind(这个);   initToolBar ();   }      私人空间initToolBar () {   this.setSupportActionBar(工具栏);   toolbar.setTitle(“我的”);   }      @OnClick ({R.id。main_toolbar R.id.btn_float})   公共空间onClick(查看视图){   最后UCrop。选择选项=new UCrop.Options ();   int颜色=ContextCompat.getColor (view.getContext (), R.color.colorPrimary);   options.setToolbarColor(颜色);   R.color.colorPrimaryDark options.setStatusBarColor (ContextCompat.getColor (view.getContext ()));   options.setActiveWidgetColor(颜色);   开关(view.getId ()) {   案例R.id.main_toolbar:   Toast.makeText (MainActivity。这个,”工具栏点击”,Toast.LENGTH_SHORT),告诉();   打破;   R.id。btn_float: {   showDialog(视图中,选择);   打破;   }   }   }      私人空间showDialog(查看视图,最后UCrop。选择选项){   最后的上下文背景=view.getContext ();   最后AlertDialog。Builder构建器=new AlertDialog.Builder(上下文);   builder.setTitle(“设置背景图片:“).setMessage(“如何获取图片?”)   .setPositiveButton(“相册”,新DialogInterface.OnClickListener () {   @Override   公共空间onClick (DialogInterface对话框,int) {   dialog.dismiss ();//RxPaparazzo.takeImage (MainActivity.this)   RxPaparazzo.single (MainActivity.this)   .crop(选项)   .usingGallery ()   .subscribeOn (Schedulers.io ())   .observeOn (AndroidSchedulers.mainThread ())   .subscribe(新Consumer在(){   @Override   公共空间接受(Response   {响应)抛出异常   如果(response.resultCode ()==Activity.RESULT_OK) {      .getFile文件filePath=response.data () ();   位图的位图=BitmapFactory。   decodeFile (filePath.getPath ());   iv_appbar.setImageBitmap(位图);      }else if (response.resultCode ()==Activity.RESULT_CANCELED) {      Toast.makeText (MainActivity。这个,”取消相册访问”,   Toast.LENGTH_SHORT),告诉();      其他}{      Toast.makeText (MainActivity。这个,”未知错误!”   Toast.LENGTH_SHORT),告诉();   }   }   });   }   })   .setNeutralButton(“取消”,新DialogInterface.OnClickListener () {   @Override   公共空间onClick (DialogInterface对话框,int) {   dialog.dismiss ();   }   })   .setNegativeButton(“拍照”,新DialogInterface.OnClickListener () {   @Override   公共空间onClick (DialogInterface对话框,int) {   dialog.dismiss ();//RxPaparazzo.takeImage (MainActivity.this)   RxPaparazzo.single (MainActivity.this)   .crop(选项)   .usingCamera ()   .subscribeOn (Schedulers.io ())   .observeOn (AndroidSchedulers.mainThread ())   .subscribe(新Consumer在(){   @Override   公共空间接受(Response

基于RxPaparazzo实现图片裁剪,图片旋转,比例放大缩小功能