android - Changing ImageView Source Does not Change Properly Image of ImageView -
android - Changing ImageView Source Does not Change Properly Image of ImageView -
actually changing blank!
in app, going images-path database , show them in main activity. process achieves selecting thumbnails of images in dialogfragment , sending record id main activity withing interface communicating between fragment-activity. @ point going utilize asynctask inner class filepath of selected image , show imageview.
everythings works except imageview not show , show blank!
p.s.: filepath correct, used in onactivityresult on place in app.
thank you.
main activity code:
public class annotatediagramactivity extends activity implements communicator { @override public void respond(string info , int requestcode) { //passing project id cpdialogfragment or pldialogfragment switch(requestcode) { case open_projectid: projectid = integer.valueof(data); loadproject(projectid); toastshort(data); break; default: break; } } public class loadmainimage extends asynctask<project,integer,string> { @override protected string doinbackground(project... params) { homecoming project.getfilepath(); } protected void onpostexecute( string result) { //here main issue: fragmentview.setimagebitmap(new imagedecoder().decodefile(new file(project.getfilepath()))); fragmentview.postinvalidate(); } } public void loadproject(int id) { project = new project(); project= expertdbhelper.getproject(id); sharedpreferences openedproject = getsharedpreferences("openedproject", 0); sharedpreferences.editor projecteditor = openedproject.edit(); projecteditor.putint("id",project.getid()); projecteditor.putstring("filepath",project.getfilepath()); projecteditor.commit(); new loadmainimage().execute(project); } }
edit verifying on returning image file path:
protected void onpostexecute( string result) { imagedecoder imagedecoder = new imagedecoder(); bitmap bmp = null; file file =new file(result); if(file.isfile()) { bmp=imagedecoder.decodefile(file,500); fragmentview.setimagebitmap(bmp); fragmentview.postinvalidate(); } else { log.e("async task file: " ,string.valueof(file.isfile()));} }
i've found image not set due criteria calculated previous loaded image, check code , find (layout boolean parameter) in code needs reset.
protected void onpostexecute( string result) { imagedecoder imagedecoder = new imagedecoder(); bitmap bmp = null; file file =new file(result); log.e("async task result: " ,result); if(file.isfile()) { bmp=imagedecoder.decodefile(file,500); fragmentview.reset(); fragmentview.recycle(); fragmentview.layout= false; fragmentview.setimagebitmap(bmp); } else { log.e("async task file: " ,string.valueof(file.isfile())); } }
android android-fragments android-activity android-imageview
Comments
Post a Comment