如何获取当前活动的视图? (getCurrentFocus返回null)

时间:2013-08-02 11:41:23

标签: java android

我想在代码中截取我的应用的截图。首先,我需要获取当前视图,但方法 getCurrentFocus()始终返回null。我该怎么办?

1 个答案:

答案 0 :(得分:0)

请注意,您只能截取您在视图中显示的内容的屏幕截图,而不能将其当作屏幕上显示的其他活动或应用。

 public 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;  
      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;  
    }