0

次のコードを使用して画面をキャプチャし、それを 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));
4

2 に答える 2

0

別のスレッドのタスクでキャプチャと保存を実行することをお勧めします。その最良の選択肢はAsycTask

この投稿をチェックして、Asynctask の動作を検索して学習してください。

ハッピーコーディング:)

于 2013-04-22T07:43:32.600 に答える
0

スクリーンショットを撮ってExternalStorageに保存すると、このプロセスはUIスレッドをブロックするため、そのスクリーンショットと保存機能を別のワーカースレッドで実行してみてください; このために、単純な Thread オブジェクトを使用するか、ユーザー AsyncTask を使用できます。

于 2013-04-22T07:36:16.960 に答える