Android 保存并打开图片

Android 保存并打开图片,android,bitmap,filepath,android-sdcard,Android,Bitmap,Filepath,Android Sdcard,我制作了一个保存系统,保存一张图片,然后关闭应用程序,然后查找文件夹。我想打开图片,但图片打开得很慢。当我重置telefon三星galaxy w时,这张图片打开得非常快(1s)。我的代码有什么问题 private String mImagePath = Environment.getExternalStorageDirectory() + "/anppp"; private File file; public void save() { File dirPath = new Fil

我制作了一个保存系统,保存一张图片,然后关闭应用程序,然后查找文件夹。我想打开图片,但图片打开得很慢。当我重置telefon三星galaxy w时,这张图片打开得非常快(1s)。我的代码有什么问题

private String mImagePath = Environment.getExternalStorageDirectory() + "/anppp";
private File file;

public void save()  {

    File dirPath = new File(Environment.getExternalStorageDirectory().toString() + "/anppp");
    dirPath.mkdirs();
    Calendar currentDate = Calendar.getInstance();
    SimpleDateFormat formatter= new SimpleDateFormat("yyyyMMMddHmmss");
    String dateNow = formatter.format(currentDate.getTime());
    file = new File(mImagePath + "/"+"ProPaint-" + dateNow +".jpg");
    FileOutputStream fos=null;


    try {

        if(!file.exists())
            file.createNewFile();

        fos = new FileOutputStream(file);
        mBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
        fos.close();

    } catch (FileNotFoundException e) {
        Log.e("Panel", "FileNotFoundException", e);
    } catch (IOException e) {
        Log.e("Panel", "IOEception", e);
    }

}

不知道这是否真的能解决您的问题,但您应该将
fos.close()
调用移动到
finally
块以确保它执行。如果
fos.close()
上面的某行抛出异常,则以下代码将被忽略,
FileOutputStream
将保持打开状态,给您带来各种各样的麻烦。当它位于
finally
块中时,它会在任何情况下执行。希望这有帮助。

您能提供错误的日志吗。我们需要更多信息来帮助您解决您的问题。可能与大图像和未创建的拇指有关yet09-28 15:29:20.161:W/KeyCharacterMap(1173):使用默认keymap:/system/usr/keychars/qwerty.kcm.bin这是更多信息;)mybe it help..未处理的异常类型IOException fos.close();必须在尝试;(((最终没有.@mamii,它应该在finally中,也被try-catch块包围,我无法显示我如何更改的代码。)(但它仍然打开图片8秒钟,我不知道当我重置手机时会发生什么更改..finally{try{fos.close();}catch(IOException e){//TODO自动生成的catch块e.printStackTrace();} }