2012-07-18 55 views
1

我想拍攝我的活動和活動(視圖)組件的屏幕截圖。在Android中使用Sreen-shot

此活動包含一個SurfaceView和一個佈局在彼此的頂部。

當我拍攝表面視圖的屏幕截圖時效果很好,但是當我拍攝整個活動的屏幕截圖時,我沒有看到它的表面視圖。我使用下面的代碼:

public class Screenshot { 
    private final View view; 
    /** Create snapshots based on the view and its children. */ 
    public Screenshot(View root) { 
    this.view = root; 
    } 
    /** Create snapshot handler that captures the root of the whole activity. */ 
    public Screenshot(Activity activity) { 
    final View contentView = activity.findViewById(android.R.id.content); 
    this.view = contentView.getRootView(); 
    } 
    /** Take a snapshot of the view. */ 
    public Bitmap snap() { 
    Bitmap bitmap = Bitmap.createBitmap(this.view.getWidth(), this.view.getHeight(), Config.ARGB_8888); 
    Canvas canvas = new Canvas(bitmap); 
    view.draw(canvas); 
    return bitmap; 
    } 
} 

回答

0

變化this.view = contentView.getRootView();this.view = contentView; 希望這將有助於。

+0

Nopes ..它不包括截圖中的SurfaceView。 – Kamal 2012-07-18 10:56:46

0

我不確定這是否會有所幫助,但是不能直接使用DDMS進行屏幕截圖嗎?

編輯

您是否嘗試過得到WindowActivity和看到的景色/圖片緩存可以拉出來的是什麼?

+0

當然可以。但我需要它通過代碼,以便我可以進一步使用這個圖像。 :) – Kamal 2012-07-18 10:55:52

+0

你需要在代碼中添加特殊效果等? – ScouseChris 2012-07-18 11:07:45

1

你可以做一個變通方法是什麼同時捕捉佈局SurfaceView圖像,並在合適的(使用Canvas.drawBitmap)使用SurfaceView的屬性座標繪製在佈局圖像的圖像SurfaceView

+0

這可能是一個好主意,但我必須將屏幕保存爲位圖,以便我可以向用戶顯示其活動的狀態。這似乎不是一個可行的解決方案。 – Kamal 2012-07-18 11:00:39

+0

你*在這裏處理位圖。你只需要拍攝兩張照片,一張是「SurfaceView」中的一張。 – 2012-07-18 11:02:52

+0

&然後如何合併它們? – Kamal 2012-07-18 11:07:21