コードの順番について質問です。
ユーザーが画像を選択できる描画アプリに取り組んでおり、描画プレートに収まるように画像をトリミングしています。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 に記述されています。
アドバイスありがとうございます!