2013-04-22 157 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