Friday, 15 January 2010

java - Slow refresh of canvas in android -



java - Slow refresh of canvas in android -

i doing app wich paints rectangles on preview photographic camera in android. problem appears previous rectangles, think canvas's refresh slow compared preview camera.

this code:

in activity class:

if (face.orientation != type_face_on_track.face_notdetected) { drawview.setpaint(true); drawview.setsize(mat.size()); drawview.invalidate(); drawview.paintrect(face.rect); }

and ondraw , paintrect funcions:

@override public void ondraw(canvas canvas) { mcanvas = canvas; if (checkpaint == false) { canvas.drawcolor(color.transparent); } } public void paintrect(rect rect) { int vwidth = getwidth(); int vheight = getheight(); int l = (int) ((rect.x * vwidth) / msize.width); int t = (int) ((rect.y * vheight) / msize.height); int r = (int) (((rect.width + rect.x) * vwidth) / msize.width); int b = (int) (((rect.height + rect.y) * vheight) / msize.height); mcanvas.drawroundrect(new rectf(l, t, r, b), 20, 20, drawingpaint); }

so, when phone call .invalidate() app calls ondraw, , when phone call .paintrect() paint rectangle.

i testing in nexus 5 don't think problem device.

you can't save canvas , draw on later that. of drawing should done in ondraw, , if need draw rectangle should save location draw @ , draw next time ondraw called.

java android android-canvas

No comments:

Post a Comment