保存并打开图片

时间:2012-09-28 15:24:29

标签: android bitmap filepath android-sdcard

我制作了一个保存系统,我保存了一张图片,然后我关闭了应用程序,然后找到了文件夹。我想打开图片,但图片打开的速度很慢。当我重置电视三星星系时,这张照片打开速度很快(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);
    }

}

1 个答案:

答案 0 :(得分:0)

不知道这是否能真正解决您的问题,但您应该将fos.close()调用移至finally块以确保其执行。如果fos.close()以上的某行引发异常,则以下代码将被忽略,FileOutputStream将保持打开状态,从而为您提供各种麻烦。当它在finally块中时,无论情况如何都会执行。希望这会有所帮助。