android - getWidth must be called from UI thread -


getwidth must called ui thread..how fix it??im trying create pdf file..but getwidth,getheight , getcanvas coming errors!!!

 private class pdfgenerationtask extends asynctask<void, void, string> {      @override     protected string doinbackground(void... params) {          pdfdocument document = new pdfdocument();          // repaint user's text page         view content = findviewbyid(r.id.pdf_content);          // crate page description         int pagenumber = 1;         pageinfo pageinfo = new pageinfo.builder(content.getwidth(),                 content.getheight() - 20, pagenumber).create();          // create new page pageinfo         page page = document.startpage(pageinfo);          content.draw(page.getcanvas());          // final processing of page         document.finishpage(page);          simpledateformat sdf = new simpledateformat("ddmmyyyyhhmmss");         string pdfname = "pdfdemo"                 + sdf.format(calendar.getinstance().gettime()) + ".pdf";          file outputfile = new file("/sdcard/pdfdemo_androidsrc/", pdfname);          try {             outputfile.createnewfile();             outputstream out = new fileoutputstream(outputfile);             document.writeto(out);             document.close();             out.close();         } catch (ioexception e) {             e.printstacktrace();         }          return outputfile.getpath();     } 

you can dimension of screen that:

display display = getwindowmanager().getdefaultdisplay(); int screenwidth = display.getwidth(); int screenheight = display.getheight(); 

but seems deprecated. now:

displaymetrics metrics = new displaymetrics(); getwindowmanager().getdefaultdisplay().getmetrics(metrics); int screenwidth = metrics.heightpixels; int screenheight = metrics.widthpixels; 

Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -