Cannot use Android Crop image crop library in Android -


i developing android project. in project, want add crop image feature. used library, https://github.com/jdamcd/android-crop. when use it. giving me error. please see scenario below.

this how installed.

  1. i put in grandle, compile 'com.soundcloud.android:android-crop:1.0.1@aar'

  2. i put in manifest file,

this how using in code.

  1. i open image picker this

    crop.pickimage(currentactivity.this, image_chooser_request_coode);

  2. in onactivityresult, doing this

    @override protected void onactivityresult(int requestcode, int resultcode, intent data) {     super.onactivityresult(requestcode, resultcode, data);     if(requestcode==image_chooser_request_coode && resultcode == result_ok)     {         crop.of(data.getdata(),null).assquare().start(createitemactivity.this);     }     else if(requestcode == crop.request_crop && resultcode == result_ok)     {         uri filepath = data.getdata();     } } 
  3. but after crop image , click "ok", result of activity not equal ok. cannot retrieve cropped image data.

    so removed resultcode==result_ok , retrieved this

     if(requestcode == crop.request_crop)  {      uri filepath = data.getdata();  } 

data null. please suggest wrong code , how can fix it? please me. correct way use it.

add in build.gradle file

repositories {     mavencentral() }  dependencies {   compile 'com.edmodo:cropper:1.0.1' } 

make layout of image this

    <?xml version="1.0" encoding="utf-8"?> <scrollview     android:id="@+id/scrollview"     xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     tools:context=".mainactivity">      <linearlayout         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:orientation="vertical"         android:padding="@dimen/content_padding">          <textview             android:id="@+id/title"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:layout_gravity="center"             android:text="@string/title"             android:textsize="24sp"             android:textstyle="bold"/>          <com.edmodo.cropper.cropimageview             android:id="@+id/cropimageview"             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:layout_margintop="@dimen/content_padding"             android:adjustviewbounds="true"             android:scaletype="centerinside"             android:src="@drawable/butterfly"/>          <linearlayout             android:id="@+id/fixedaspectratiolayout"             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:layout_margintop="@dimen/content_padding"             android:orientation="horizontal">              <textview                 android:id="@+id/fixedaspectratio"                 android:layout_width="0dp"                 android:layout_height="wrap_content"                 android:layout_gravity="center_vertical"                 android:layout_weight="1"                 android:gravity="center_vertical|end"                 android:text="@string/fixedaspectratio"/>              <framelayout                 android:layout_width="0dp"                 android:layout_height="wrap_content"                 android:layout_weight="1">                  <togglebutton                     android:id="@+id/fixedaspectratiotoggle"                     android:layout_width="wrap_content"                     android:layout_height="wrap_content"                     android:layout_gravity="center_vertical|start"/>              </framelayout>          </linearlayout>          <linearlayout             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:layout_margintop="@dimen/content_padding_half"             android:orientation="horizontal">              <textview                 android:id="@+id/aspectratioxheader"                 android:layout_width="0dp"                 android:layout_height="wrap_content"                 android:layout_gravity="center_vertical"                 android:layout_weight="1"                 android:gravity="end"                 android:text="@string/aspectratioxheader"/>              <textview                 android:id="@+id/aspectratiox"                 android:layout_width="0dp"                 android:layout_height="wrap_content"                 android:layout_gravity="center_vertical"                 android:layout_weight="1"                 android:gravity="start"                 tools:text="10"/>          </linearlayout>          <seekbar             android:id="@+id/aspectratioxseek"             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:max="100"             android:progress="10"/>          <linearlayout             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:layout_margintop="@dimen/content_padding_half"             android:orientation="horizontal">              <textview                 android:id="@+id/aspectratioyheader"                 android:layout_width="0dp"                 android:layout_height="wrap_content"                 android:layout_gravity="center_vertical"                 android:layout_weight="1"                 android:gravity="end"                 android:text="@string/aspectratioyheader"/>              <textview                 android:id="@+id/aspectratioy"                 android:layout_width="0dp"                 android:layout_height="wrap_content"                 android:layout_gravity="center_vertical"                 android:layout_weight="1"                 android:gravity="start"                 tools:text="10"/>          </linearlayout>          <seekbar             android:id="@+id/aspectratioyseek"             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:max="100"             android:progress="10"/>          <linearlayout             android:id="@+id/showguidelineslayout"             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:layout_margintop="@dimen/content_padding_half"             android:orientation="horizontal">              <textview                 android:id="@+id/showguidelines"                 android:layout_width="0dp"                 android:layout_height="wrap_content"                 android:layout_gravity="center_vertical"                 android:layout_weight="1"                 android:gravity="end"                 android:text="@string/showguidelines"/>              <framelayout                 android:layout_width="0dp"                 android:layout_height="wrap_content"                 android:layout_weight="1">                  <spinner                     android:id="@+id/showguidelinesspin"                     android:layout_width="wrap_content"                     android:layout_height="wrap_content"                     android:layout_gravity="center_vertical"                     android:entries="@array/showguidelinesarray"                     android:gravity="start"/>              </framelayout>          </linearlayout>          <button             android:id="@+id/button_crop"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:layout_gravity="center_horizontal"             android:layout_margintop="@dimen/content_padding"             android:minwidth="120dp"             android:text="@string/crop"             android:textcolor="#33b5e5"             android:textsize="20sp"/>          <imageview             android:id="@+id/croppedimageview"             android:layout_width="match_parent"             android:layout_height="wrap_content"             android:layout_margintop="@dimen/content_padding"             android:adjustviewbounds="true"             android:contentdescription="@string/croppedimagedesc"             android:scaletype="centerinside"/>      </linearlayout>  </scrollview> 

mainactivity.java

public class mainactivity extends activity {      private static final int guidelines_on_touch = 1;       @override     public void oncreate(bundle savedinstancestate) {          super.oncreate(savedinstancestate);         requestwindowfeature(window.feature_no_title);         setcontentview(r.layout.activity_main);          // initialize views.         final togglebutton fixedaspectratiotogglebutton = (togglebutton) findviewbyid(r.id.fixedaspectratiotoggle);         final textview aspectratioxtextview = (textview) findviewbyid(r.id.aspectratiox);         final seekbar aspectratioxseekbar = (seekbar) findviewbyid(r.id.aspectratioxseek);         final textview aspectratioytextview = (textview) findviewbyid(r.id.aspectratioy);         final seekbar aspectratioyseekbar = (seekbar) findviewbyid(r.id.aspectratioyseek);         final spinner guidelinesspinner = (spinner) findviewbyid(r.id.showguidelinesspin);         final cropimageview cropimageview = (cropimageview) findviewbyid(r.id.cropimageview);         final imageview croppedimageview = (imageview) findviewbyid(r.id.croppedimageview);         final button cropbutton = (button) findviewbyid(r.id.button_crop);          // initializes fixedaspectratio toggle button.         fixedaspectratiotogglebutton.setoncheckedchangelistener(new oncheckedchangelistener() {             @override             public void oncheckedchanged(compoundbutton buttonview, boolean ischecked) {                 cropimageview.setfixedaspectratio(ischecked);                 cropimageview.setaspectratio(aspectratioxseekbar.getprogress(), aspectratioyseekbar.getprogress());                 aspectratioxseekbar.setenabled(ischecked);                 aspectratioyseekbar.setenabled(ischecked);             }         });         // set seek bars disabled until toggle button checked.         aspectratioxseekbar.setenabled(false);         aspectratioyseekbar.setenabled(false);          aspectratioxtextview.settext(string.valueof(aspectratioxseekbar.getprogress()));         aspectratioytextview.settext(string.valueof(aspectratioxseekbar.getprogress()));          // initialize aspect ratio x seekbar.         aspectratioxseekbar.setonseekbarchangelistener(new onseekbarchangelistener() {             @override             public void onprogresschanged(seekbar aspectratioxseekbar, int progress, boolean fromuser) {                 if (progress < 1) {                     aspectratioxseekbar.setprogress(1);                 }                 cropimageview.setaspectratio(aspectratioxseekbar.getprogress(), aspectratioyseekbar.getprogress());                 aspectratioxtextview.settext(string.valueof(aspectratioxseekbar.getprogress()));             }              @override             public void onstarttrackingtouch(seekbar seekbar) {                 // nothing.             }              @override             public void onstoptrackingtouch(seekbar seekbar) {                 // nothing.             }         });          // initialize aspect ratio y seekbar.         aspectratioyseekbar.setonseekbarchangelistener(new onseekbarchangelistener() {             @override             public void onprogresschanged(seekbar aspectratioyseekbar, int progress, boolean fromuser) {                 if (progress < 1) {                     aspectratioyseekbar.setprogress(1);                 }                 cropimageview.setaspectratio(aspectratioxseekbar.getprogress(), aspectratioyseekbar.getprogress());                 aspectratioytextview.settext(string.valueof(aspectratioyseekbar.getprogress()));             }              @override             public void onstarttrackingtouch(seekbar seekbar) {                 // nothing.             }              @override             public void onstoptrackingtouch(seekbar seekbar) {                 // nothing.             }         });          // set guidelines spinner.         guidelinesspinner.setonitemselectedlistener(new adapterview.onitemselectedlistener() {             public void onitemselected(adapterview<?> adapterview, view view, int i, long l) {                 cropimageview.setguidelines(i);             }              public void onnothingselected(adapterview<?> adapterview) {                 // nothing.             }         });         guidelinesspinner.setselection(guidelines_on_touch);          // initialize crop button.         cropbutton.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view v) {                 final bitmap croppedimage = cropimageview.getcroppedimage();                 croppedimageview.setimagebitmap(croppedimage);             }         });     } } 

for more detail visit : https://github.com/edmodo/cropper


Comments

Popular posts from this blog

wordpress - (T_ENDFOREACH) php error -

Export Excel workseet into txt file using vba - (text and numbers with formulas) -

Using django-mptt to get only the categories that have items -