2

我曾经通过content查看并绘制活动来捕捉活动的位图:

View view = activity.findViewById(android.R.id.content)

Bitmap bitmap = Bitmap.createBitmap(
    view.getWidth(), view.getHeight(), Config.ARGB_8888
);

view.draw(new Canvas(bitmap));

现在我正在使用一个 ActionBar,它没有嵌套在content视图下,所以它被忽略了。如何获得真正的根视图?或者以其他方式使用操作栏拍摄照片,如果这是不可能的?

4

1 回答 1

5

要获取包括 ActionBar 在内的整个窗口的位图,您可以使用 DecorView。

  1. 首先您需要启用绘图缓存

    getWindow().getDecorView().setDrawingCacheEnabled(true);
    
  2. 获取位图

    Bitmap bmp = getWindow().getDecorView().getDrawingCache();  
    
  3. 在其他地方使用位图,我用 ImageView 试试这个,效果很好。

  4. 禁用绘图缓存

    getWindow().getDecorView().setDrawingCacheEnabled(false);
    
于 2012-07-19T02:30:53.057 回答