android - Issue, how to save Image from View Pager -


i'm loading set of images server , displaying in viewpager. when hit save button, next image saved sd card , not exact image. . how handle this?? here code

public class photodetailsfragment extends superfragment implements onclicklistener { samplepageradapter adapter; private button sharebtn ; private albumbean photodata ; private button saveimagebtn ; private arraylist < string > photoslinks = new arraylist < string >() ; viewpager pager ;  int currentpage=0; public zoomableimageview imageview ; public int page = 0 ;  @ override public view oncreateview( layoutinflater inflater , viewgroup container , bundle savedinstancestate ) {     return inflater.inflate( r.layout.photo_details_layout , container , false ) ;  }  @ override public void onactivitycreated( bundle savedinstancestate ) {     // todo auto-generated method stub     super.onactivitycreated( savedinstancestate ) ;       pager = ( viewpager ) getactivity().findviewbyid( r.id.pager ) ;     init( savedinstancestate ) ;  }  /**  * init main components in layout  */ private void init( bundle savedinstancestate ) {     // todo auto-generated method stub      if ( util.load( getactivity() , iaaconfig.key_gallery_last_pos ).length() > 0 ) {         page = integer.parseint( util.load( getactivity() , iaaconfig.key_gallery_last_pos ) ) ;     } else         page = getarguments().getint( iaaconfig.key_gallery_last_pos ) ;      photodata = ( albumbean ) getarguments().getserializable( iaaconfig.key_album_info ) ;      photoslinks = photodata.getphotolinks() ;      try {         sharebtn = ( button ) getactivity().findviewbyid( r.id.share_btn ) ;         sharebtn.setonclicklistener( ) ;          saveimagebtn = ( button ) getactivity().findviewbyid( r.id.saveimagebtn ) ;         saveimagebtn.setonclicklistener( ) ;     } catch ( exception e ) {         // todo: handle exception     }       adapter = new samplepageradapter();     pager.setadapter( new samplepageradapter() ) ;     pager.setcurrentitem( page) ;  //adapter.getcount()-1  }  @ override public void onclick( view v ) {     // todo auto-generated method stub      switch ( v.getid() ) {     case r.id.share_btn:         util.sharetexturl( getactivity() , photoslinks.get( pager.getcurrentitem() ) ) ;         break ;      case r.id.saveimagebtn:              //int t = adapter.getcount()-1;          //string astring = integer.tostring(t);         // pager.setcurrentitem(getitem(+1), true);      util.savemyimage( imageview , getactivity() , pager.getcurrentitem()+""  ) ;//adapter.getcount().pager.getcurrentitem()          //pager.setcurrentitem(pager.getcurrentitem())          break ;      default:        break ;     }  }    private contentresolver getcontentresolver() {     // todo auto-generated method stub     return null; }  private int getitem(int i) {     // todo auto-generated method stub     return pager.getcurrentitem() + i; }    class samplepageradapter extends pageradapter {      @ override     public int getcount() {         return photoslinks.size() ;     }      @ override     public boolean isviewfromobject( view view , object object ) {         return view == object ;     }      @ override     public object instantiateitem( viewgroup container , int position ) {          imageview = new zoomableimageview( getactivity() ) ;         imageview.setdrawingcacheenabled( true ) ;         imageview.builddrawingcache( true ) ;         imageview.setmaxzoom( 10f ) ;         imageview.destroydrawingcache();         try {             picasso.with( getactivity() ).load( photoslinks.get( position ) ).into( imageview ) ;          } catch ( exception e ) {             // todo: handle exception         }          layoutparams imageparams = new layoutparams( layoutparams.match_parent , layoutparams.match_parent ) ;          imageview.setlayoutparams( imageparams ) ;         linearlayout layout = new linearlayout( getactivity() ) ;         layout.setorientation( linearlayout.vertical ) ;         layoutparams layoutparams = new layoutparams( layoutparams.match_parent , layoutparams.match_parent ) ;         layout.setlayoutparams( layoutparams ) ;         layout.addview( imageview ) ;          container.addview( layout ) ;         //pager.setcurrentitem(getitem(+1), true);         return layout ;      }      @ override     public int getitemposition( object object ) {         // todo auto-generated method stub          return super.getitemposition( object ) ;     }      @ override     public void destroyitem( viewgroup container , int position , object object ) {         container.removeview( ( linearlayout ) object ) ;         //pager.removeview((view) object);     }  }  /*  * (non-javadoc)  *   * @see android.app.fragment#onsaveinstancestate(android.os.bundle)  */ @ override public void onsaveinstancestate( bundle outstate ) {     // todo auto-generated method stub     super.onsaveinstancestate( outstate ) ;     //outstate.putint("pageitem", pager.getcurrentitem());     util.save( getactivity() , iaaconfig.key_gallery_last_pos ,       pager.getcurrentitem() + "" ) ; } 

} , here savemyimage method:

 public static void savemyimage( imageview imageview , context context , string imagename ) {      try {        bitmap bmimg = bitmap.createbitmap( imageview.getdrawingcache() ) ;         imageview.setdrawingcacheenabled( false ) ;         imageview.destroydrawingcache();         string fullimagepath = android.os.environment.getexternalstoragedirectory().tostring() + "/" + context.getstring( r.string.app_name ) ;         file filename ;         file file = new file( fullimagepath ) ;         if ( !file.exists() )             file.mkdirs() ;         filename = new file( file.getabsolutepath() + "/" + imagename + ".jpg" ) ;         fileoutputstream out = new fileoutputstream( filename ) ;         bmimg.compress( bitmap.compressformat.png , 90 , out ) ;         out.flush() ;         out.close() ;          contentvalues image = getimagecontent( filename , context ) ;         uri result = context.getcontentresolver().insert( mediastore.images.media.external_content_uri , image ) ;         toast.maketext( context , "file saved in  " + filename , toast.length_long ).show() ;         trace( "file saved in  " + filename ) ;         } catch ( exception e ) {         e.printstacktrace() ;     }  } 


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -