2012-02-22 39 views
0

我試圖捕捉截圖只是活動的表演過後,我現在有一個解決方案,那就是這樣的截圖後的onCreate

new Handler().postDelayed(new Runnable() { 
      @Override 
      public void run() { 
       // TODO Auto-generated method stub 
       ScreenManager.captureScreen(); 
      } 
     }, 1500); 

將代碼放在活動的onCreate,但我有時會發現活動開始非常慢,它超過1500毫米,然後捕獲的位圖將是空的,我想找到類似的函數或像onShown()或onDraw()回調,但未能找到它。是否有任何回調被稱爲只是在活動中的所有視圖都顯示,然後我可以把捕獲屏幕代碼放在這裏,我需要這個,非常感謝。

回答

0

您可以使用下面的代碼以快照,

ImageView v1 = (ImageView)findViewById(R.id.mImage); 
v1.setDrawingCacheEnabled(true); 
Bitmap bm = v1.getDrawingCache(); 
+0

對不起,我想你誤會我的問題,我知道怎麼做的截圖,這裏的問題是我不能讓它只是當顯示的活性。但感謝任何方式。 – 2012-02-22 08:02:00

1

,你是否嘗試從在onStart或運行的onResume ScreenManager.captureScreen() - 他們的onCreate後調用。如果應用程序進入後臺並返回,onResume將被調用,但您需要創建一個布爾值來檢查。

活動週期這裏圖可以幫助:http://developer.android.com/reference/android/app/Activity.html

+0

我已經嘗試onStart和onResume,都無法正常工作,因爲在那個時候,view-> getWidth()== 0,所以它不能工作,謝謝你。 – 2012-02-22 08:28:36

+0

如何運行AsyncTask來檢查if(view.getWidth()!= 0)然後截取屏幕截圖? – Tony 2012-02-22 08:39:31

+0

哦,我想我可以試試這個,謝謝tony ~~ – 2012-02-22 08:42:13