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
Post a Comment