如题,如何获得整个屏幕的BitMap?也就是说包扩当前Activity上面的Title 和 Status Bar(电量和信号等一栏)。
关键如何获取它们整体的对象?
  求指点

解决方案 »

  1.   

    http://blog.csdn.net/wljie2008/archive/2011/05/30/6454281.aspx 看看这个 
      

  2.   

    2楼的哥们,我也是这样写的,你确定不是空指针么?
    下面是我的代码:
       View view = getWindow().getDecorView();
           
            view.setDrawingCacheEnabled(true);
            view.buildDrawingCache();
            bitmap = view.getDrawingCache();此时这个bitmap 是空的。你的例子可以正常跑么?
      

  3.   

    确定。
    private static Bitmap takeScreenShot(Activity activity){  
            View view =activity.getWindow().getDecorView();  
            view.setDrawingCacheEnabled(true);  
            view.buildDrawingCache();  
            Bitmap bitmap = view.getDrawingCache();  
            Rect rect = new Rect();  
            activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);  
            int statusBarHeight = rect.top;  
            System.out.println(statusBarHeight);  
              
            int width =activity.getWindowManager().getDefaultDisplay().getWidth();  
            int height =activity.getWindowManager().getDefaultDisplay().getHeight();  
              
            Bitmap bitmap2 = Bitmap.createBitmap(bitmap,0,statusBarHeight, width, height - statusBarHeight);  
            view.destroyDrawingCache();  
            return bitmap2;  
        }  
      

  4.   

    返回一个bitmap 然后就保存下来就好了。
      

  5.   

    我是真机跑的,怎么会还是空指针,得到的这个BitMap为空!
    我是直接在Activity中调用的,应该没有问题啊!
      

  6.   

    哦 知道了,我傻了,我在OnCreate里掉了,那个时候肯定是空指针了,还是谢谢这位哥们了
      

  7.   

    我也解决啦!!
    竟然不能再OnCreate、onResume里用,必须启动个时钟,超时再截屏才行
      

  8.   


    哥们,你没理解啊,在create 之前 view 是正在创建,对象你是拿到了,但是视图不存在,只有在之后的生命周期才能得到view的视图
      

  9.   

    怎样获得当前activity对象?????