How to set an image on imageView from the gallery and image taken by camera in Android? -
in app want set image on imageview gallery , want set image taken camera. have tried code, when load image gallery, working. when try take picture set on imageview, activity loaded image not showing in imageview. solution this? here code:
first activity
public class mainactivity extends actionbaractivity { private static int result_load_image = 1; private static final int camera_request = 1888; private imageview imageview; bitmap photo; string picturepath; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); button buttonloadimage = (button) findviewbyid(r.id.buttonloadpicture); buttonloadimage.setonclicklistener(new view.onclicklistener() { @override public void onclick(view arg0) { intent = new intent( intent.action_pick, android.provider.mediastore.images.media.external_content_uri); startactivityforresult(i, result_load_image); } }); // this.imageview = (imageview)this.findviewbyid(r.id.imgview); button photobutton = (button) this.findviewbyid(r.id.button2); photobutton.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { intent cameraintent = new intent(android.provider.mediastore.action_image_capture); startactivityforresult(cameraintent, camera_request); } }); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.menu_main, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); //noinspection simplifiableifstatement if (id == r.id.action_settings) { return true; } return super.onoptionsitemselected(item); } @override protected void onactivityresult(int requestcode, int resultcode, intent data) { super.onactivityresult(requestcode, resultcode, data); if (requestcode == result_load_image && resultcode == result_ok && null != data) { uri selectedimage = data.getdata(); string[] filepathcolumn = {mediastore.images.media.data}; cursor cursor = getcontentresolver().query(selectedimage, filepathcolumn, null, null, null); cursor.movetofirst(); int columnindex = cursor.getcolumnindex(filepathcolumn[0]); picturepath = cursor.getstring(columnindex); cursor.close(); int flagval = 1; /* imageview imageview = (imageview) findviewbyid(r.id.imgview); imageview.setimagebitmap(bitmapfactory.decodefile(picturepath));*/ sendimage(flagval); } if (requestcode == camera_request && resultcode == result_ok) { /* photo = (bitmap) data.getextras().get("data"); //imageview.setimagebitmap(photo); int flagvalt=2; try { sendimage(flagvalt); } catch (exception e){ toast.maketext(mainactivity.this, "method error", toast.length_short).show(); }*/ try { loadcampic(); toast.maketext(mainactivity.this, "method invoked", toast.length_short).show(); } catch (exception e) { toast.maketext(mainactivity.this, "method error", toast.length_short).show(); } } } public void sendimage(int flag) { if (flag == 1) { toast.maketext(mainactivity.this, "loc:" + picturepath, toast.length_short).show(); intent myintent1 = new intent(mainactivity.this, imageuploadactivity.class); myintent1.putextra("key", picturepath); mainactivity.this.startactivity(myintent1); } /*else if(flag==2) { intent intent = new intent(mainactivity.this, imageuploadactivity.class); intent.putextra("bitmapimage", photo); }*/ } void loadcampic() { string basedir = environment.getexternalstoragedirectory().getabsolutepath(); string pathname = basedir + "/dcim/camera"; file parentdir = new file(pathname); file[] files = parentdir.listfiles(); date lastdate = null; string lastfilename; boolean isfirstfile = true; (file file : files) { if (isfirstfile) { lastdate = new date(file.lastmodified()); isfirstfile = false; } if (file.getname().endswith(".jpg") || file.getname().endswith(".jpeg")) { date lastmoddate = new date(file.lastmodified()); if (lastmoddate.after(lastdate)) { lastdate = lastmoddate; lastfilename = file.getname(); string pathname2 = pathname + lastfilename; // log.e(tag, "method invoked"); intent intent = new intent(mainactivity.this, imageuploadactivity.class); bundle extras = new bundle(); extras.putstring("file_path", pathname2); extras.putstring("file_name", lastfilename); intent.putextras(extras); mainactivity.this.startactivity(intent); } } } } } second activity
public class imageuploadactivity extends actionbaractivity { private button upload; private bitmap bitmap; private progressdialog dialog; string picturepath; string filename; imageview imageview; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_image_upload); //image sdcard intent intent1 = getintent(); picturepath = intent1.getextras().getstring("key"); imageview = (imageview) findviewbyid(r.id.imgview); imageview.setimagebitmap(bitmapfactory.decodefile(picturepath)); bitmap = (bitmapfactory.decodefile(picturepath)); //camera image /* intent intent = getintent(); bitmap = (bitmap) intent.getparcelableextra("bitmapimage"); imageview = (imageview) findviewbyid(r.id.imgview); imageview.setimagebitmap(bitmap);*/ if (picturepath == null) { intent intent = getintent(); bundle extras = intent.getextras(); filename = extras.getstring("file_name"); string filepath = extras.getstring("file_path"); toast.maketext(imageuploadactivity.this, "success:" + filepath, toast.length_short).show(); imageview = (imageview) findviewbyid(r.id.imgview); imageview.setimagebitmap(bitmapfactory.decodefile(filepath)); bitmap = (bitmapfactory.decodefile(filepath)); } upload = (button) findviewbyid(r.id.upload); upload.setonclicklistener(new view.onclicklistener() { public void onclick(view v) { if (bitmap == null) { toast.maketext(getapplicationcontext(), "please select image", toast.length_short).show(); } else { dialog = progressdialog.show(imageuploadactivity.this, "uploading", "please wait...", true); new imageuploadtask().execute(); } } }); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.menu_image_upload, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. int id = item.getitemid(); //noinspection simplifiableifstatement if (id == r.id.action_settings) { return true; } return super.onoptionsitemselected(item); } class imageuploadtask extends asynctask<void, void, string> { @override protected string doinbackground(void... unsued) { try { httpclient httpclient = new defaulthttpclient(); httpcontext localcontext = new basichttpcontext(); httppost httppost = new httppost("http://10.10.10.15/test/upload.php"); multipartentity entity = new multipartentity( httpmultipartmode.browser_compatible); bytearrayoutputstream bos = new bytearrayoutputstream(); bitmap.compress(bitmap.compressformat.jpeg, 100, bos); byte[] data = bos.tobytearray(); /* entity.addpart("uploaded_file", new bytearraybody(data, "myimage.jpg"));*/ // string newfilename= filename.concat("file"); // newfilename=filename+newfilename; entity.addpart("uploaded_file", new bytearraybody(data, filename)); // log.e(tag, "method invoked"); httppost.setentity(entity); httpresponse response = httpclient.execute(httppost, localcontext); bufferedreader reader = new bufferedreader( new inputstreamreader( response.getentity().getcontent(), "utf-8")); stringbuilder builder = new stringbuilder(); string aux = ""; while ((aux = reader.readline()) != null) { builder.append(aux); } string sresponse = builder.tostring(); return sresponse; } catch (exception e) { if (dialog.isshowing()) dialog.dismiss(); toast.maketext(getapplicationcontext(), "exception message 1", toast.length_long).show(); log.e(e.getclass().getname(), e.getmessage(), e); return null; } // (null); } @override protected void onprogressupdate(void... unsued) { } @override protected void onpostexecute(string sresponse) { try { if (dialog.isshowing()) dialog.dismiss(); if (sresponse != null) { toast.maketext(getapplicationcontext(), "photo uploaded successfully", toast.length_short).show(); log.e("response", sresponse); } } catch (exception e) { toast.maketext(getapplicationcontext(), "exception message", toast.length_long).show(); log.e(e.getclass().getname(), e.getmessage(), e); } } } }
take @ selected best answer here take photo w/ camera intent , display in imageview or textview? , find out how take picture , set background of imageview programmatically
Comments
Post a Comment