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