java - screenshots don't change when layout changes -


i'm using viewpager main navigation in app. i'm using actionbar, well. want achieve when user clicks search button in actionbar want have blurred background. approach take screenshot, blur it, set imageview , display overlay on whole view. , works. problem when first open search displays proper screenshot. turn overlay off, change page in viewpager, click search again , ... can see previous screenshot- not new 1 new page on it. here snippets of code:

  1. show , hide overlay on search click (i'm passing r.id.container view parent id of content view, menuoverlay imageview referenced layout)

  2. here's method takes screenshot , makes blurry

    // ad. 1 item.setonactionexpandlistener(new menuitem.onactionexpandlistener() { @override public boolean onmenuitemactionexpand(menuitem menuitem) { if(menuitem.getitemid() == r.id.action_search) {

    menuoverlay.setimagebitmap(utils.takesnapshot(findviewbyid(r.id.container)));                 menuoverlay.setvisibility(view.visible);             }             return true;         }          @override         public boolean onmenuitemactioncollapse(menuitem menuitem) {             if(menuitem.getitemid() == r.id.action_search) {                 menuoverlay.setvisibility(view.gone);             }             return true;         }     });    // ad. 2 public static bitmap takesnapshot(view v) {         v.setdrawingcacheenabled(true);         v.builddrawingcache();         bitmap bm = v.getdrawingcache();         bitmap scaled = bitmap.createscaledbitmap(bm, bm.getwidth()/5, bm.getheight()/5, false);         return utils.fastblur(scaled, 5);     } 

i;m using fast blur algorithm found somewhere here on stackoverflow quite fast. where's problem? why happens?

ok, found answer. if want have "fresh" screenshot need destroy cache after operations:

v.setdrawingcacheenabled(false);  

Comments

Popular posts from this blog

c# - How to get the current UAC mode -

postgresql - Lazarus + Postgres: incomplete startup packet -

angularjs - ng-repeat duplicating items after page reload -