0

コードの順番について質問です。

ユーザーが画像を選択できる描画アプリに取り組んでおり、描画プレートに収まるように画像をトリミングしています。tempFileコードに示されているものを削除しない場合、以下のコードを使用してすべてが正常に機能します。

    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
        super.onActivityResult(requestCode, resultCode, data);      

        if (requestCode == PHOTO_PICKED && resultCode == RESULT_OK) 
        {
            if (data == null) 
            {
                Log.w(TAG, "Null data, but RESULT_OK, from image picker!");
                Toast t = Toast.makeText(this, R.string.no_photo_picked, Toast.LENGTH_SHORT);
                t.show();
                return;
            }

            if (data != null) 
            {
                    File tempFile = getTempFile();
                    String filePath= Environment.getExternalStorageDirectory() +"/"+TEMP_PHOTO_FILE;
                    Toast.makeText(this, "path "+filePath, Toast.LENGTH_LONG).show();
                    doodleView.load_pic(filePath);
//                    if (tempFile.exists()) tempFile.delete();              
            }       
        }   

ドローイング プレートは、doodleView という名前の拡張ビューであり、doodleView.load_pic(filePath);これらは冗長であるため、使用後に tempFile も削除したいと考えています。しかし、追加if (tempFile.exists()) tempFile.delete();すると、画像ファイルが拡張ビューにロードされる前にファイルが削除されるため、プログラムがクラッシュします。

もしそうなら、どのように再配置できますか?または、そのような削除 tempFile を拡張ビューで実行することは可能ですか? 一時ファイルのトリミングと配置のすべての主な操作は、MainActivity に記述されています。

アドバイスありがとうございます!

4

0 に答える 0