android - how to capture a bitmap from a view with its parent background -
i want create bitmap view , have bitmap contain background parent view(s).
the following code capture view "v":
  v.builddrawingcache();   bitmap b = bitmap.createbitmap (v.getdrawingcache());   but background of "v". in case, "v" has transparent background, "b" has transparent alpha channel. want "b" contain actual displayed background.
ideas?
i can suggest following solution. can have several parents semitransparent backgrounds can capture whole activity window , crop part need (your view bounds).
for example:
    view root = getwindow().getdecorview().getrootview();     root.setdrawingcacheenabled(true);     root.builddrawingcache();     // here got whole screen bitmap     bitmap screenshot = root.getdrawingcache();      // view coordinates     int[] location = new int[2];     view.getlocationinwindow(location);      // crop screenshot     bitmap bmp = bitmap.createbitmap(screenshot, location[0], location[1], view.getwidth(), view.getheight(), null, false);   after doing can sure bitmap contains actual displayed background.
upd: if root.getdrawingcache() doesn't work can capture screen directly drawing on bitmap:
    view root = getwindow().getdecorview().getrootview();     bitmap screenshot = bitmap.createbitmap(root.getwidth(), root.getheight(), bitmap.config.argb_8888);     canvas canvas = new canvas(screenshot);     root.draw(canvas);      
Comments
Post a Comment