java - Android Studio - Canvas interaction in WindowManager -


i'm developing android app have overlay view user can access anywhere. have taken code following question:

overlay

put simple, class "hud" call subclass viewgroup"hudview", containing necessary elements.

now want add in viewgroup seekbar that, on progress change, draw canvas every time: example seekbar progress =1, draw circle 10° angle, progress=2, redraw circle 20° angle, , on... circle , seekbar must overlay actual screen everywhere.

i've managed put canvas (created in ondraw method of viewgroup) , seekbar (created in oncreate method of hud class, listener). in method "onprogresschanged" redraw circle, doesnt seems work.

here listener code:

// seekbar change listener     seekbar.setonseekbarchangelistener(new seekbar.onseekbarchangelistener() {          @override         public void onprogresschanged(seekbar seekbar, int progresvalue, boolean fromuser) {             mview = new hudview(getapplicationcontext());             progress = progresvalue;               windowmanager.layoutparams params = new windowmanager.layoutparams(                     windowmanager.layoutparams.type_system_overlay,                     windowmanager.layoutparams.flag_watch_outside_touch,                     pixelformat.translucent);             params.gravity = gravity.center | gravity.top;             params.settitle("load average");             windowmanager wm = (windowmanager) getsystemservice(window_service);             wm.addview(mview, params);             }          @override         public void onstarttrackingtouch(seekbar seekbar) {             //toast.maketext(getapplicationcontext(), "started tracking seekbar", toast.length_short).show();         }          @override         public void onstoptrackingtouch(seekbar seekbar) {             //textview.settext("covered: " + progress + "/" + seekbar.getmax());             //toast.maketext(getapplicationcontext(), "stopped tracking seekbar", toast.length_short).show();         }     }); 

here ondraw method of hudview:

} @override protected void ondraw(canvas canvas) {     super.ondraw(canvas);      final rectf oval = new rectf();     oval.set(30, 30, 450, 450);     bitmap bg = bitmap.createbitmap(480, 480, bitmap.config.argb_8888);     canvas.drawarc(oval, 90, progress*10 , true, paint); } 


Comments