2013-04-22 166 views
0

我捕捉屏幕使用波紋管代碼,然後它存儲在SD卡中,並轉到另一activity.but當我導航到另一個活動是非常slow.how我可以解決它嗎? 請任何人都可以幫我嗎?將圖像存儲到SD卡?

View v1 = view.getRootView();  
    v1.setDrawingCacheEnabled(true);  
bitmapBcfhForm3 = v1.getDrawingCache();  
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "Signatures"); 

      imagesFolder.mkdirs();  
      String fileName = "bitmapBcfhForm3"+AppointmentDetails.getPatientId+".png"; 
      File out = new File(imagesFolder,fileName); 
      FileOutputStream mFileOutStream1 = new FileOutputStream(out); 
      bitmapBcfhForm3.compress(Bitmap.CompressFormat.PNG, 90, mFileOutStream1); 
      mFileOutStream1.flush(); 
      mFileOutStream1.close(); 
      } 
       catch (Exception e) { 
        // TODO: handle exception 
        Log.v("log_tag", e.toString()); 
       } 
     startActivity(new intent(A.this.B.classs)); 

回答

0

你正在服用的截屏並保存到ExternalStorage,這個過程會擋住你的UI線程,所以儘量要做到這一點的屏幕截圖,並在SAPARATE工作線程保存功能;爲此,你可以使用簡單的線程對象,否則用戶AsyncTask

+0

感謝回覆。 – suman 2013-04-22 09:32:30

0

我建議你在另一個線程的任務中執行捕獲和保存。對於那個最好的選擇是AsycTask

檢查這個Post,搜索和學習Asynctask的工作。

快樂編碼:)

+0

感謝回覆。 – suman 2013-04-22 09:46:30

+0

它適合你嗎? – Abhi 2013-04-22 10:37:59